左叶子之和

47 阅读1分钟

在本篇博客中,我们将讨论如何计算给定二叉树的所有左叶子节点之和。我们将使用 JavaScript 和递归方法来解决这个问题。

问题描述

题目链接

leetcode.cn/problems/su…

给定一个二叉树的根节点 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
     

};

步骤

  1. 这个题目大框架先拆解递归遍历
  2. 关键寻找叶子节点,目标只寻找当前左叶子节点的值
  3. 遇到左叶子节点再累加

对于这类递归题目不要一味的追求简化,就按照正常的思维去逐步拆解问题就好