数据结构|js实现二叉树根节点到所有叶子节点组成的路径数字之和

【数据结构|js实现二叉树根节点到所有叶子节点组成的路径数字之和】思路:首先会用到的就是树的遍历,其次为了得到每个路径的数字之和,需要对每次遍历完的结果进行保持,于是会用到递归的思想。

// 测试数据如下: var root2 = { val: 1, left: { val: 2, left: null, right: null, }, right: { val: 3, left: null, right: null, } } // 结果: 7 = (1+2)+(1+3) // 实现:运用递归的思想 function sumTree(root, sum = 0) { // 1. 判断输入是否合法 if(!root) { return 0; } // 4. 得出结果 sum = sum + root.val; // 2. 判断递归结束的条件(遍历每个节点,对每个节点判断其是否有左右子树) if(!root.left && !root.right) { return sum; } // 3. 寻找路径,将问题小化 return sumTree(root.left, sum) + sumTree(root.right, sum); }

    推荐阅读