題目鏈結:
112. 路徑總和
題目:
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
5
/ \4 8
/ / \
11 13 4
/ \ \
7 2 1
返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。
思路:
從根節點開始往下搜,直到碰到葉子節點再判斷。注意不能剪枝,因為可能有負數。關於根節點算不算葉子節點,我覺得如果根節點的左右子樹都為空,那麼這時候算葉子節點,如輸入[1],sum=1,返回true;如果左右子樹至少有乙個不為空,則根節點不算入葉子結點,如輸入[1,2],sum=1,返回false。
code:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
intcalc
(treenode *root,
int cnt,
int sum)
if(root-
>left)if(
calc
(root-
>left,cnt+root-
>val,sum)
)return1;
if(root-
>right)if(
calc
(root-
>right,cnt+root-
>val,sum)
)return1;
return0;
}};
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。...