Binary Tree inorder Traversal
Given a binary tree, return the inorder traversal of its nodes ' values.
For example:
Given binary Tree {1,#,2,3},
1
\
2
/
3
return [1,3,2].
Note:recursive solution is trivial, could do it iteratively?
Confused what "{1,#,2,3}" means? > read more about how binary tree was serialized on OJ.
SOL:
Includes recursive and non-recursive methods:
1 /**2 * Definition for binary tree3 * public class TreeNode {4 * int val;5 * TreeNode left;6 * TreeNode right;7 * TreeNode (int x) {val = x;}8 * }9 */Ten Public classSolution { One PublicList<integer>inorderTraversal1 (TreeNode root) { Alist<integer> ret =NewArraylist<integer>(); - Rec (root, ret); - returnret; the } - - Public voidRec (TreeNode root, list<integer>ret) { - if(Root = =NULL) { + return; - } + A Rec (root.left, ret); at Ret.add (root.val); - Rec (root.right, ret); - } - - PublicList<integer>inordertraversal (TreeNode root) { -list<integer> ret =NewArraylist<integer>(); in if(Root = =NULL) { - returnret; to } + -stack<treenode> s =NewStack<treenode>(); theTreeNode cur =Root; * $ while(true) {Panax Notoginseng while(cur! =NULL) { - s.push (cur); theCur =Cur.left; + } A the if(S.isempty ()) { + Break; - } $ $Cur =S.pop (); - Ret.add (cur.val); - theCur =Cur.right; - }Wuyi the returnret; - } Wu}View Code
Leetcode:binary Tree inorder Traversal Problem Solving report