AlgoMaster Logo

Binary Tree Preorder Traversal

tree=[1, 2, 3, null, 4, null, 5]
1public List<Integer> preorderTraversal(TreeNode root) {
2    List<Integer> result = new ArrayList<>();
3    if (root == null) {
4        return result;
5    }
6
7    Stack<TreeNode> stack = new Stack<>();
8    stack.push(root);
9
10    while (!stack.isEmpty()) {
11        TreeNode current = stack.pop();
12        result.add(current.val);
13
14        // Push right first so left is processed first
15        if (current.right != null) {
16            stack.push(current.right);
17        }
18        if (current.left != null) {
19            stack.push(current.left);
20        }
21    }
22
23    return result;
24}
0 / 25
RR12345Stack