路徑總和 LeetCode 112

2021-09-24 08:44:55 字數 731 閱讀 4018

因為是從根節點到葉節點的,因此不用關心中間節點,只要在判斷走到葉節點時,一層層減去每一層的節點的值與當前葉子

節點的值一致,則肯定滿足條件。 另外,注意避免下面注釋的2個坑。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

// 坑1:誤以為當前節點比剩餘的值大即認為失敗,因為中間節點正負數都有可能,並不只是一味的正數相加

// 比如1->-2->1->-1(sum=-2)

//if (root->val > sum)

// 坑2:誤認為中間某乙個節點值與減去上幾層之後的值一致,就認為到葉子節點就會大於sum,其實還是

// 沒有考慮中間有正負的情況

//if (root->val == sum && (root->left || root->right))

// 這裡表明走到葉子節點,滿足從根節點到葉節點,值為sum

if (root->val == sum && !root->left && !root->right)

return haspathsum(root->left, sum - root->val) || haspathsum(root->right, sum - root->val);

}};複製**

LeetCode112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。遍...

LeetCode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑 5 ...

Leetcode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721 返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。...