LC 366 Find Leaves of Binary Tree(M)
1
/ \
2 3
/ \
4 5解题思路 Recursive DFS
public List<List<Integer>> findLeaves(TreeNode root){
List<List<Integer>> result = new ArrayList<List>();
helper(result, root);
}
public int helper(List<List<Integer>> result, root){
if(root == null)
return -1; //保证叶子的index是 0
int left = helper(result, root.left);
int right = helper(result, root.right);
int cur = Math.max(left, right) + 1;
if(result.size() == cur){ //一定是从 index 0 数组开始
result.add(new ArrayList<Integer>());
}
result.get(cur).add(root.value);
return result;
}Last updated