Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values.
Example
Given:
1
/ \
2 3
/ \
4 5
return [1,2,4,5,3].
without using recursion.
1 /** 2 * Definition of TreeNode: 3 * public class TreeNode { 4 * public int val; 5 * public TreeNode left, right; 6 * public TreeNode(int val) { 7 * this.val = val; 8 * this.left = this.right = null; 9 * } 10 * } 11 */ 12 public class Solution { 13 /** 14 * @param root: The root of binary tree. 15 * @return: Preorder in ArrayList which contains node values. 16 */ 17 public ArrayList<Integer> preorderTraversal(TreeNode root) { 18 // write your code here 19 ArrayList<Integer> results = new ArrayList<>(); 20 if (root == null) { 21 return results; 22 } 23 Stack<TreeNode> stack = new Stack<>(); 24 stack.push(root); 25 while (!stack.isEmpty()) { 26 TreeNode node = stack.pop(); 27 results.add(node.val); 28 if (node.right != null) { 29 stack.push(node.right); 30 } 31 if (node.left != null) { 32 stack.push(node.left); 33 } 34 } 35 return results; 36 } 37 }

浙公网安备 33010602011771号