1. 程式人生 > >[leetcode]257. Binary Tree Paths二叉樹路徑

[leetcode]257. Binary Tree Paths二叉樹路徑

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 }