题目描述:
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree{1,#,2,3},
1 \ 2 / 3
思路解析:
需要一个用于递归前序遍历的helper(void):
- 先存入ArrayList<Integer> re = new ArrayList<Integer>;
- 然后遍历左子树,再遍历右子树
代码:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
import java.util.*;
public class Solution {
public ArrayList<Integer> preorderTraversal(TreeNode root) {
ArrayList<Integer> re = new ArrayList<Integer>();
if(root ==null)
return re;
helper(re,root);
return re;
}
public void helper(ArrayList<Integer> re,TreeNode root){
if(root==null)
return;
re.add(root.val);
helper(re,root.left);
helper(re,root.right);
}
}