zoukankan      html  css  js  c++  java
  • LeetCode 404. Sum of Left Leaves

    Find the sum of all left leaves in a given binary tree.

    Example:

        3
       / 
      9  20
        /  
       15   7
    
    There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

    题意:给定一颗二叉树,返回该二叉树的左叶子结点的和
    思路:层次遍历,然后判断每个结点是否包含左叶子结点,如果存在左叶子结点则加进sum,代码如下:
    public int sumOfLeftLeaves(TreeNode root) {
            if(root == null)
                return 0;
            int sum = 0;
            Queue<TreeNode> q = new LinkedList<>();
            q.offer(root);
            while(!q.isEmpty()){
                TreeNode t = q.poll();
                sum += isLeftLeaf(t);
                if(t.left != null){
                    q.offer(t.left);
                }
                if(t.right != null){
                    q.offer(t.right);
                }
            }
            return sum;
        }
        public int isLeftLeaf(TreeNode t){
            if(t.left != null){
                if(t.left.left == null && t.left.right == null)
                   return t.left.val;
            }
            return 0;
        }
     
  • 相关阅读:
    c++ 与 c 的区别
    c++ 查看程序运行时间
    串口阻塞与非阻塞
    串口缓冲区
    马拉车算法
    printf 自加自减
    stack
    长度问题
    PCIE的内存地址空间、I/O地址空间和配置地址空间
    数组和指针
  • 原文地址:https://www.cnblogs.com/zeroingToOne/p/7955752.html
Copyright © 2011-2022 走看看