1. 程式人生 > >領釦(LeetCode)二叉樹的所有路徑 個人題解

領釦(LeetCode)二叉樹的所有路徑 個人題解

給定一個二叉樹,返回所有從根節點到葉子節點的路徑。

說明: 葉子節點是指沒有子節點的節點。

示例:

輸入:

   1
 /   \
2     3
 \
  5

輸出: ["1->2->5", "1->3"]

解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3


本題有多種解法,可參考https://blog.csdn.net/xiezongsheng1990/article/details/79574892的程式碼。時間關係不累述。

遞迴演算法的程式碼如下:

 1 class Solution {
 2     List<String> ans = new
LinkedList<>(); 3 4 public List<String> binaryTreePaths(TreeNode root) { 5 if (root == null) 6 return ans; 7 GoNext(root, String.valueOf(root.val)); 8 return ans; 9 10 } 11 12 public void GoNext(TreeNode t, String sans) { 13 if
(t.left == null && t.right == null) { 14 ans.add(sans); 15 return; 16 } 17 if (t.left != null) { 18 GoNext(t.left, sans + "->" + t.left.val); 19 } 20 if (t.right != null) { 21 GoNext(t.right, sans + "->" + t.right.val);
22 } 23 } 24 }