1. 程式人生 > 其它 >(7)二叉樹路徑總和LeetCode.112

(7)二叉樹路徑總和LeetCode.112

技術標籤:面試題二叉樹演算法

LeetCode.112

給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。

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

示例:
給定如下二叉樹,以及目標和 sum = 22,

     5
  / \
  4  8
  /  / \
 11 13 4
/ \   \
7  2   1


返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。

bool hasPathSum(TreeNode* root, int sum)
{
    if(NULL == root) return false;
    if(!root->left && !root->right && sum == root->val) return true;
    return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);
}