本文共 521 字,大约阅读时间需要 1 分钟。
给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径,
例如: 给出如下的二叉树,sum=22 返回true,因为存在一条路径 5→4→11→2 的节点值之和为 22。思路
分成三种情况, (1)节点不存在,返回false (2)节点只有一个的时候,判定是否左子和右子均为空,且sum值等于该节点值 (3)递归的具体操作,递归左子和右子,同时更新sum的值,且结果为或的关系var hasPathSum = function (root, sum) { if (root === null) // 根节点为空 return false; // 只有叶节点的情况 if (root.left === null && root.right === null) return root.val === sum; // 总和减去当前值,并递归 sum = sum - root.val return hasPathSum(root.left, sum) || hasPathSum(root.right, sum);};
转载地址:http://anuvi.baihongyu.com/