Given a binary tree, return all root-to-leaf paths.
Note: A leaf is a node with no children.
Example:
Input: 1 / \ 2 3 \ 5 Output: ["1->2->5", "1->3"] Explanation: All root-to-leaf paths are: 1->2->5, 1->3
题目
给定一棵二叉树,求出所有根到叶的路径。
思路
DFS, Very straightforward
代码
1 class Solution { 2 public List<String> binaryTreePaths(TreeNode root) { 3 List<String> result = new ArrayList<>(); 4 if(root == null) return result; 5 helper(root, result, ""); 6 return result; 7 } 8 9 private void helper (TreeNode root, List<String> result, String path){ 10 // leaf node 11 if(root.left ==null && root.right ==null) { 12 result.add(path + root.val); 13 } 14 // dfs 15 if(root.left!=null){ 16 helper(root.left, result, path+root.val+ "->"); 17 } 18 if(root.right!=null){ 19 helper(root.right, result, path+root.val+"->"); 20 } 21 } 22 }