Skip to content

Commit efd57ee

Browse files
committed
tree basics
1 parent df13d34 commit efd57ee

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package BinaryTreePostorderTraversal;
2+
3+
import commons.datastructures.TreeNode;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Stack;
8+
9+
/**
10+
* User: Danyang
11+
* Date: 1/27/2015
12+
* Time: 10:38
13+
*
14+
* Given a binary tree, return the postorder traversal of its nodes' values.
15+
16+
For example:
17+
Given binary tree {1,#,2,3},
18+
1
19+
\
20+
2
21+
/
22+
3
23+
return [3,2,1].
24+
25+
Note: Recursive solution is trivial, could you do it iteratively?
26+
*/
27+
public class Solution {
28+
/**
29+
* Post order L R c
30+
* @param root
31+
* @return
32+
*/
33+
public List<Integer> postorderTraversal(TreeNode root) {
34+
List<Integer> ret = new ArrayList<>();
35+
Stack<TreeNode> stk = new Stack<>();
36+
if(root==null)
37+
return ret;
38+
stk.add(root);
39+
while(!stk.empty()) {
40+
TreeNode cur = stk.pop();
41+
ret.add(0, cur.val);
42+
if(cur.left!=null)
43+
stk.add(cur.left);
44+
if(cur.right!=null)
45+
stk.add(cur.right);
46+
}
47+
return ret;
48+
}
49+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package BinaryTreePreorderTraversal;
2+
3+
import commons.datastructures.TreeNode;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Stack;
8+
9+
/**
10+
* User: Danyang
11+
* Date: 1/27/2015
12+
* Time: 10:34
13+
* Given a binary tree, return the preorder traversal of its nodes' values.
14+
15+
For example:
16+
Given binary tree {1,#,2,3},
17+
1
18+
\
19+
2
20+
/
21+
3
22+
return [1,2,3].
23+
24+
Note: Recursive solution is trivial, could you do it iteratively?
25+
*/
26+
public class Solution {
27+
/**
28+
* Pre-order: c L R
29+
* @param root
30+
* @return
31+
*/
32+
public List<Integer> preorderTraversal(TreeNode root) {
33+
Stack<TreeNode> stk = new Stack<>();
34+
List<Integer> ret = new ArrayList<>();
35+
if(root==null)
36+
return ret;
37+
38+
stk.add(root);
39+
while(!stk.empty()) {
40+
TreeNode cur = stk.pop();
41+
ret.add(cur.val);
42+
if(cur.right!=null)
43+
stk.add(cur.right);
44+
if(cur.left!=null)
45+
stk.add(cur.left);
46+
}
47+
return ret;
48+
}
49+
}

0 commit comments

Comments
 (0)