https://leetcode.com/problems/binary-tree-preorder-traversal/description/
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree [1,null,2,3]
,
1
2
/
3
return [1,2,3]
.
time: o(n) space:o(n): worst case like linked list
1 public List<Integer> preorderTraversal(TreeNode root) {
2 // Write your solution here
3 if(root == null ) return new ArrayList<Integer>() ;
4 List<Integer> res = new ArrayList<Integer>() ;
5 traverse(root, res) ;
6 return res ;
7 }
8 private void traverse(TreeNode root, List<Integer> res){
9 //base case
10 if(root == null ) return ;
11 res.add(root.val);
12 traverse(root.left, res);
13 traverse(root.right, res) ;
14 }