zoukankan      html  css  js  c++  java
  • 222. Count Complete Tree Nodes

    package LeetCode_222
    
    import java.util.*
    
    /**
     * 222. Count Complete Tree Nodes
     * https://leetcode.com/problems/count-complete-tree-nodes/description/
     *
     * Given a complete binary tree, count the number of nodes.
    
    Note:
    Definition of a complete binary tree from Wikipedia:
    In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
    
    Example:
    Input:
         1
       /  
      2    3
     /   /
    4  5 6
    
    Output: 6
     * */
    
    class TreeNode{
        var left:TreeNode?=null
        var right:TreeNode?=null
    }
    class Solution {
        /*
        * solution:BFS,Time complexity:O(n), Space complexity:O(n)
        * */
        fun countNodes(root: TreeNode?): Int {
            if (root==null){
                return 0
            }
            val queue = LinkedList<TreeNode>()
            queue.offer(root)
            var result = 1
            while (queue.isNotEmpty()){
                val size = queue.size
                for (i in 0 until size){
                    val cur = queue.pop()
                    if (cur.left!=null){
                        queue.offer(cur.left)
                        result++
                    } else {
                        return result
                    }
                    if (cur.right!=null){
                        queue.offer(cur.right)
                        result++
                    } else {
                        return result
                    }
                }
            }
            return result
        }
    }
  • 相关阅读:
    微信小程序开发入门(六)
    JS计算日期加上指定天数得到新的日期
    Java中substring()
    List集合去除重复数据
    按钮倒计时
    jQuery中each方法
    Math三个函数
    jQuery表单提交
    jQuery 序列化表单数据
    正则取小数点后面几位
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13222562.html
Copyright © 2011-2022 走看看