Binary Tree Preorder Traversal
2014-01-27 08:09
507 查看
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree
return
Note: Recursive solution is trivial, could you do it iteratively?
public class BinaryTreePreorderTraversal {
public ArrayList<Integer> preorderTraversal(TreeNode<Integer> root) {
ArrayList<Integer> r = new ArrayList<Integer>();
if (root == null) {
return r;
}
r.add(root.data);
ArrayList<Integer> left = preorderTraversal(root.left);
ArrayList<Integer> right = preorderTraversal(root.right);
if (left != null)
r.addAll(left);
if (right != null)
r.addAll(right);
return r;
}
}
或者:
public static ArrayList<Integer> preorderTraversal(TreeNode root){
ArrayList<Integer> list = new ArrayList<>();
preorderTraversalHelper(root,list);
return list;
}
private static void preorderTraversalHelper(TreeNode root, ArrayList<Integer> list){
if(root == null) return;
list.add(root.val);
preorderTraversalHelper(root.left, list);
preorderTraversalHelper(root.right,list);
}
For example:
Given binary tree
{1,#,2,3},
1 \ 2 / 3
return
[1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?
public class BinaryTreePreorderTraversal {
public ArrayList<Integer> preorderTraversal(TreeNode<Integer> root) {
ArrayList<Integer> r = new ArrayList<Integer>();
if (root == null) {
return r;
}
r.add(root.data);
ArrayList<Integer> left = preorderTraversal(root.left);
ArrayList<Integer> right = preorderTraversal(root.right);
if (left != null)
r.addAll(left);
if (right != null)
r.addAll(right);
return r;
}
}
或者:
public static ArrayList<Integer> preorderTraversal(TreeNode root){
ArrayList<Integer> list = new ArrayList<>();
preorderTraversalHelper(root,list);
return list;
}
private static void preorderTraversalHelper(TreeNode root, ArrayList<Integer> list){
if(root == null) return;
list.add(root.val);
preorderTraversalHelper(root.left, list);
preorderTraversalHelper(root.right,list);
}
相关文章推荐
- 105\106. Construct Binary Tree from Inorder and Postorder\Preorder Traversal&重建二叉树
- leetcode 日经贴,Cpp code -Construct Binary Tree from Preorder and Inorder Traversal
- 144. Binary Tree Preorder Traversal
- [Leetcode] Binary tree preorder traversal
- 【Leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode: Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- [LeetCode]Binary Tree Preorder Traversal
- LeetCode OJ --问题与解答 Binary Tree Preorder Traversal
- DFS&Iteration Binary Tree Preorder Traversal
- 144. Binary Tree Preorder Traversal
- LeetCode 144: Binary Tree Preorder Traversal
- [LeetCode]Binary Tree Preorder Traversal
- LeetCode——Construct Binary Tree from Preorder and Inorder Traversal
- 144. Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal--leetcode
- Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode (Binary Tree Preorder Traversal)
- Construct Binary Tree from Preorder and Inorder Traversal