牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??皖}霸 [二叉樹中是否存在節點和為指定值的路徑] C++題解/答案
題目描述
給定一個二叉樹和一個值\ sum sum,判斷是否有從根節點到葉子節點的節點值之和等于\ sum sum 的路徑,
例如:
給出如下的二叉樹,\ sum=22 sum=22,
返回true,因為存在一條路徑 5\to 4\to 11\to 25→4→11→2的節點值之和為 22
題解:
不斷遞歸左右子樹,遞歸過程中不斷用sum-當前節點的值,到葉子節點的是否特判sum減去葉子節點是否為0
注意,要先判斷root是否為NULL,再判斷左右子樹的情況,否則會段錯誤
代碼:
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/class Solution { public:/*** * @param root TreeNode類 * @param sum int整型 * @return bool布爾型*/bool hasPathSum(TreeNode* root, int sum) {// write code hereif(root==NULL)return 0;if(root->left==NULL&&root->right==NULL&&sum-(root->val)==0)return 1;return hasPathSum(root->left,sum-(root->val))||hasPathSum(root->right,sum-(root->val));} };總結
以上是生活随笔為你收集整理的牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第七章、epub文件处理 -- 解析 .
- 下一篇: 牛客题霸 [判断二叉树是否对称] C++