Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.List;
- import java.util.ArrayList;
- import java.util.Stack;
- // Problem: https://leetcode.com/problems/binary-tree-preorder-traversal/
- // Solution adapted from: https://www.youtube.com/watch?v=elQcrJrfObg
- // Solution adapted from: https://www.programcreek.com/2012/12/leetcode-solution-for-binary-tree-preorder-traversal-in-java/
- public class PreorderIterative {
- public static class TreeNode {
- int val;
- TreeNode left;
- TreeNode right;
- TreeNode(int x) { val = x; }
- }
- public static List<Integer> preorderIterativeTraversal(TreeNode root) {
- List<Integer> result = new ArrayList<>();
- if (root == null) {
- return result;
- }
- Stack<TreeNode> stack = new Stack<>();
- stack.push(root);
- while(!stack.isEmpty()) {
- TreeNode node = stack.pop();
- result.add(node.val);
- if(node.right != null) {
- stack.push(node.right);
- }
- if(node.left != null) {
- stack.push(node.left);
- }
- }
- return result;
- }
- public static void main(String args[]){
- TreeNode root = new TreeNode(10);
- root.left = new TreeNode(8);
- root.right = new TreeNode(2);
- root.left.left = new TreeNode(3);
- root.left.right = new TreeNode(5);
- root.left.right.left = new TreeNode(2);
- List<Integer> result = preorderIterativeTraversal(root);
- System.out.println(result.toString());
- // Expected output: 10 8 3 5 2 2
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement