leetcode112 路径总和
生活随笔
收集整理的這篇文章主要介紹了
leetcode112 路径总和
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)二叉樹和一個(gè)目標(biāo)和,判斷該樹中是否存在根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑,這條路徑上所有節(jié)點(diǎn)值相加等于目標(biāo)和。
說明:?葉子節(jié)點(diǎn)是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。
示例:?
給定如下二叉樹,以及目標(biāo)和 sum = 22,
? ? ? ? ? ? ? 5
? ? ? ? ? ? ?/ \
? ? ? ? ? ? 4 ? 8
? ? ? ? ? ?/ ? / \
? ? ? ? ? 11 ?13 ?4
? ? ? ? ?/ ?\ ? ? ?\
? ? ? ? 7 ? ?2 ? ? ?1
返回 true, 因?yàn)榇嬖谀繕?biāo)和為 22 的根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑 5->4->11->2。
思路:遞歸判斷即可。
注意是到葉子節(jié)點(diǎn)為止,我一開始做錯(cuò)了。
錯(cuò)誤代碼:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public boolean hasPathSum(TreeNode root, int sum) {if(sum==0 && root==null)return true;if(sum<0 || root==null)return false;return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val);} }正確代碼:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public boolean hasPathSum(TreeNode root, int sum) {if(root!=null && sum==root.val && root.left==null && root.right==null)return true;if(root==null)return false;return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val);}}?
總結(jié)
以上是生活随笔為你收集整理的leetcode112 路径总和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模拟动态分区分配
- 下一篇: leetcode86. 分隔链表