1. 程式人生 > >leetcode 112. 路徑總和

leetcode 112. 路徑總和

nbsp spa true lse style 相加 HA color 葉子節點

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

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

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

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

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

對遞歸的使用還是不熟練,沒有想到用遞歸的方法

在解決樹相關的問題的時候,要時刻想到遞歸的思維

1 class Solution {
2 public:
3     bool hasPathSum(TreeNode* root, int sum) {
4         if(root == NULL) return false;
5         if(root->val == sum && root->left == NULL && root->right == NULL) return true;
6         return hasPathSum(root->right, sum-root->val) || hasPathSum(root->left, sum-root->val);
7 } 8 };

leetcode 112. 路徑總和