【数据结构|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);
}
推荐阅读
- 算法与数据结构|Leetcode0720. 词典中最长的单词(simple)
- 面试|HashMap常问的11个面试题 你会几个
- STL中map和set详解
- 数据结构|PTA查找—二叉搜索树的删除操作
- 算法|PTA查找—构造二叉检索树
- 数据结构|PTA线性表—统计字母比例
- Python|【蓝桥杯国赛真题】备战24天 Python
- 算法与数据结构|算法与数据结构——AcWing算法题常用代码模板
- 蓝桥杯|蓝桥杯——1.2递归实现排列型枚举