• 【LeetCode】404. 左叶子之和


    算法现在就是大厂、外企的硬指标。开发、测开、测试,想往上总是绕不开的。

    题目描述

    难度:【简单】 标签:【二叉树】

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

    题目地址:https://leetcode-cn.com/problems/sum-of-left-leaves/

    示例

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

    解题

    首先要明确这个叶子结点,遍历节点的时候需要判断这个节点是否为叶子节点。

    这个需要一个辅助函数,通过判断该节点是否存在左右孩子节点来实现。

    按照框架套路,考虑当前节点做的事情,然后把剩下的交给递归。

    那么对当前节点来说,如果它的左孩子节点是一个叶子节点,那么就累加这个节点的值。

    如果不是,则继续递归左右孩子,并相加最终的结果。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
    class Solution {
        public int sumOfLeftLeaves(TreeNode root) {
            if (root == null) {
                return 0;
            }
            // 当前节点左孩子,如果是叶子节点,则进行累加。继续递归右孩子后的左节点
            if (isLeaf(root.left)) {
                return root.left.val + sumOfLeftLeaves(root.right);
            }
            return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
        }
        // 辅助函数,判断是否叶子节点
        private boolean isLeaf(TreeNode node) {
            if (node == null) {
                return false;
            }
            return node.left == null && node.right == null;
        }
    }
    
    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    [Tips] Resolve error: server certificate verification failed.
    [Tips] bzr Import error
    NPAPI命休矣
    [Buzz Today]2013.08.18
    [Tips]Fix node.js addon build error: "gyp: binding.gyp not found"
    The.first.glance.at.linux.commands
    [Idea Fragments]2013.08.08
    Linux利器:WinSCP,Putty,pscp和psftp
    本博客已经迁移去http://blog.brightwang.com/
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/15631257.html
Copyright © 2020-2023  润新知