<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 1.1; background-color: rgb(255, 255, 255);">Binary Tree Preorder Traversal</span>
recursion:
public class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
preorderTraversalHelper(root, list);
return list;
}
public void preorderTraversalHelper(TreeNode root, List<Integer> list) {
if(root == null) {
return;
}
list.add(root.val);
preorderTraversalHelper(root.left, list);
preorderTraversalHelper(root.right, list);
}
}
Stack:
</pre><pre name="code" class="java">public class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
if(root == null) {
return list;
}
Stack<TreeNode> stack = new Stack<TreeNode>();
while(root != null || !stack.isEmpty()) {
if(root != null) {
stack.push(root);
list.add(root.val);
root = root.left;
} else {
TreeNode node = stack.pop();
root = node.right;
}
}
return list;
}
}