在本篇博客中,我们将讨论如何计算给定二叉树的所有左叶子节点之和。我们将使用 JavaScript 和递归方法来解决这个问题。
问题描述
题目链接
给定一个二叉树的根节点 root
,计算所有左叶子节点之和。左叶子节点是指:一个节点被认为是左叶子节点,如果它是它的父节点的左子节点,并且没有子节点。
解决方案
我们将使用递归的方式来遍历二叉树并计算左叶子节点之和。具体实现分为以下几个步骤:
var sumOfLeftLeaves = function(root) {
var resultNumber=0;
function helper(node){
if(node===null){
return
}
if(node.left!==null&&node.left.left===null&&node.left.right===null){
resultNumber += node.left.val
}
helper(node.left)
helper(node.right)
}
helper(root)
return resultNumber
};
步骤
- 这个题目大框架先拆解递归遍历
- 关键寻找叶子节点,目标只寻找当前左叶子节点的值
- 遇到左叶子节点再累加
对于这类递归题目不要一味的追求简化,就按照正常的思维去逐步拆解问题就好