LeetCode(437)——路径总和 III(JavaScript)

it2024-10-18  1

给定一个二叉树,它的每个结点都存放着一个整数值。

找出路径和等于给定数值的路径总数。

路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。

示例: root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 返回 3。和等于 8 的路径有: 5 -> 3 5 -> 2 -> 1 -3 -> 11

/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @param {number} sum * @return {number} */ var pathSum = function(root, sum) { };

个人解法

var pathSum = function(root, sum) { var result = 0; //从根节点开始向下遍历,查询有没有路径 function bianli(node , value){ if(node === null){ return; } if(value + node.val === sum){ result++; } bianli(node.left , node.val + value); bianli(node.right , node.val + value); } //对root的每颗子树都进行遍历 function bianli2(node){ if(node === null){ return; } bianli(node , 0); bianli2(node.left); bianli2(node.right); } bianli2(root); return result; };
最新回复(0)