leetcode 404. 左叶子之和


一、题目

输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

二、解法

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

    boolean isLeaf(TreeNode node){
        return node!=null&&node.left==null&&node.right==null;
    }
}

相关