左叶子之和

此博客链接:https://www.cnblogs.com/ping2yingshi/p/13499752.html

左叶子之和

题目链接:https://leetcode-cn.com/problems/sum-of-left-leaves/

计算给定二叉树的所有左叶子之和。

示例:

3
/
9 20
/
15 7

在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

题解:

       思路:层次遍历,如果左孩子叶子节点不为空则加上左孩子的数值。

       注意:题目要求是只求和左孩子节点,不是左子树的节点都求和,所以在判断时,是要判断左叶子节点的父亲节点,判断条件是,父亲节点的左孩子存在,并且左还是是一个叶子节点,才把左孩子节点加入到结果中。

 代码:

class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null)
        return 0;
       
        Queue <TreeNode> queue=new LinkedList();
        int sum=0;
        queue.add(root);
        while(!queue.isEmpty())
        {
           TreeNode node=queue.poll();
            if(node.left!=null&&(node.left.left==null&&node.left.right==null))
                  sum+=node.left.val;
            if(node.left!=null)
              { 
                  queue.add(node.left);
              }
             
              if(node.right!=null)
              {
                
                  queue.add(node.right);
              }


        }
        return sum;

    }
}
原文地址:https://www.cnblogs.com/ping2yingshi/p/13499752.html