LintCode: Binary Tree Preorder Traversal
Problem:
Given a binary tree, return the preorder traversal of its nodes' values.
Idea:
The trick here is to set a private variable result and refresh it in the helper method, then do the preorder traversal in a recursive way.
Code:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: Preorder in ArrayList which contains node values. */ private ArrayList<Integer> result = new ArrayList<Integer>(); public ArrayList<Integer> preorderTraversal(TreeNode root) { // write your code here // handle corner case if (root == null) { return result; } helper(root); return result; } private void helper(TreeNode node) { if (node == null) { return; } // refresh result result.add(node.val); // go for left and right helper(node.left); helper(node.right); } }
posted on 2016-03-13 13:30 dingjunnan 阅读(121) 评论(0) 编辑 收藏 举报