Given a binary tree, return the preorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1
    \
     2
    /
   3

 

return [1,2,3].

代码如下:

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution {
11     public List<Integer> preorderTraversal(TreeNode root) {
12         List<Integer> list=new ArrayList<>();
13         if(root==null)
14         return list;
15         
16         list.add(root.val);
17         
18         if(root.left!=null)
19         list.addAll(preorderTraversal(root.left));
20         if(root.right!=null)
21         list.addAll(preorderTraversal(root.right));
22 
23         
24         return list;
25     }
26 }