码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode]_Binary Tree Inorder Traversal

时间:2014-06-29 12:55:36      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   get   

题目:二叉树的中序遍历。

思路:用递归来写中序遍历非常简单。但是题目直接挑衅说,----->"Recursive solution is trivial"。好吧。谁怕谁小狗。

 

递归代码:

bubuko.com,布布扣
 1     List<Integer> inOrder = new ArrayList<Integer>();
 2     
 3     public List<Integer> inorderTraversal(TreeNode root) {
 4         inOrderT(root);
 5         return inOrder;
 6     }
 7     
 8     public void inOrderT(TreeNode root){
 9         if(root != null){
10             inorderTraversal(root.left);
11             inOrder.add(root.val);
12             inorderTraversal(root.right);
13         }
14     }
bubuko.com,布布扣

 

循环解法:利用stack,由于中序遍历在访问完节点的左子树后访问节点值,因此,当前node != null时,将node 入栈,访问其左子树;当左子树为null了,从栈中弹出元素访问再访问其右子树

------>写的非常好的二叉树遍历的文章

bubuko.com,布布扣
 1     public List<Integer> inorderTraversal(TreeNode root) {
 2          
 3        List<Integer> inOrder = new ArrayList<Integer>();
 4        Stack<TreeNode> s = new Stack<TreeNode>();
 5        
 6        TreeNode help = root;
 7        while(help != null || !s.isEmpty()){
 8            while(help != null){
 9                s.push(help);
10                help = help.left;
11            }
12            if(!s.isEmpty()){
13                help = s.pop();
14                inOrder.add(help.val);
15                help = help.right;
16            }
17        }
18        
19        return inOrder;
20     
21     }
bubuko.com,布布扣

 

[leetcode]_Binary Tree Inorder Traversal,布布扣,bubuko.com

[leetcode]_Binary Tree Inorder Traversal

标签:style   blog   http   java   color   get   

原文地址:http://www.cnblogs.com/glamourousGirl/p/3769906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!