Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 28dc702

Browse files
edit 144
1 parent 615ff78 commit 28dc702

File tree

1 file changed

+10
-21
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+10
-21
lines changed

src/main/java/com/fishercoder/solutions/_144.java

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import com.fishercoder.common.classes.TreeNode;
44

5-
import java.util.ArrayList;
6-
import java.util.List;
7-
import java.util.Stack;
5+
import java.util.*;
86

9-
/**Given a binary tree, return the preorder traversal of its nodes' values.
7+
/**
8+
* 144. Binary Tree Preorder Traversal
9+
* Given a binary tree, return the preorder traversal of its nodes' values.
1010
1111
For example:
1212
Given binary tree {1,#,2,3},
@@ -20,21 +20,24 @@
2020
Note: Recursive solution is trivial, could you do it iteratively?*/
2121

2222
public class _144 {
23-
public List<Integer> preorderTraversal_iterative_original(TreeNode root) {
23+
24+
public List<Integer> preorderTraversal_iterative(TreeNode root) {
2425
List<Integer> list = new ArrayList();
25-
Stack<TreeNode> stack = new Stack();
2626
if(root == null) return list;
27+
Deque<TreeNode> stack = new ArrayDeque<>();
2728
stack.push(root);
2829
while(!stack.isEmpty()){
2930
TreeNode curr = stack.pop();
3031
list.add(curr.val);
32+
/**We push right nodes onto the stack first, since they'll be popped out later than
33+
* the left nodes, to meet the preorder: root -> left -> right. */
3134
if(curr.right != null) stack.push(curr.right);
3235
if(curr.left != null) stack.push(curr.left);
3336
}
3437
return list;
3538
}
3639

37-
public List<Integer> preorderTraversal_recursive_1(TreeNode root) {
40+
public List<Integer> preorderTraversal_recursive(TreeNode root) {
3841
List<Integer> list = new ArrayList();
3942
return pre(root, list);
4043
}
@@ -47,18 +50,4 @@ List<Integer> pre(TreeNode root, List<Integer> list){
4750
return list;
4851
}
4952

50-
51-
public List<Integer> preorderTraversal_recursive_2(TreeNode root) {
52-
List<Integer> result = new ArrayList();
53-
if (root != null) dfs(root, result);
54-
return result;
55-
}
56-
57-
private void dfs(TreeNode root, List<Integer> result){
58-
result.add(root.val);
59-
if (root.left != null) dfs(root.left, result);
60-
if (root.right != null) dfs(root.right, result);
61-
}
62-
63-
6453
}

0 commit comments

Comments
 (0)