112.路径总和

Posted lanpang9661

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了112.路径总和相关的知识,希望对你有一定的参考价值。

2020-04-03
路径总和
                                              技术图片
 
题解:
思路1: 递归
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} sum
 * @return {boolean}
 */
var hasPathSum = function (root, sum) {
  if (root === null) return false; // 递归到叶子节点 如果当前节点为null 说明这一条路径不对
  // 如果左右侧都没有子节点了 且当前节点的值等于剩余的sum 则当前节点是正确的路径
  if (!root.left && !root.right && root.val === sum) return true; 
  // 遍历某个节点 若左侧有值,将sum减去当前节点的值作为下一次递归的sum 一直遍历下去 直到最后的节点
  // 同样的 右侧有值同样的遍历下去 且 由于作用域的关系 sum 在每次递归中的值是互不影响的
  return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
};

 

以上是关于112.路径总和的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-----112. 路径总和

LeetCode112路径总和

LeetCode 112. 路径总和c++/java详细题解

leetcode算法112. 路径总和

112.路径总和

Leetcode112.路径总和