思路就是從根節點開始向下選節點,依次與sum比較大小,若小,則向下選左右節點其中一個,若大,則接下來判斷是否是葉子節點,若是,則返回false
若不是,則上一步選另一節點,再將上述重新執行。
對於葉子節點比較可以:
if(root.left == null && root.right == null)
接下來進行遞迴,看到sum可以每選一層,就將上一層選的節點數值減掉,這樣可以計算方便。
分別假設:
result = haspathsum(root.left,sum-root.val);......
result = haspathsum(root.right,sum-root.val);
然後,判斷。
Leetcode 112 路徑總和
給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑 5 4...
LeetCode 路徑總和
問題描述 給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 1...
leetcode 112 路徑總和
給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 1返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11...