资讯专栏INFORMATION COLUMN

[LeetCode] 222. Count Complete Tree Nodes

kamushin233 / 1279人阅读

Problem

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

Solution
class Solution {
    public int countNodes(TreeNode root) {
        if (root == null) return 0;
        int height = 0;
        TreeNode left = root.left, right = root.right;
        while (left != null && right != null) {
            height++;
            left = left.left;
            right = right.right;
        }
        if (left == null && right == null) return (1 << (height+1)) - 1;
        else return 1 + countNodes(root.left) + countNodes(root.right);
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72536.html

相关文章

  • leetcode222. Count Complete Tree Nodes

    摘要:题目要求计算一个完全二叉树的节点个数。其中完全二叉树是指除了最后一行,其余的每一行都必须是满节点的树。当然超时啦思路二讲道理的递归思路一很明显没有充分利用这是一颗完全二叉树的条件。 题目要求 Given a complete binary tree, count the number of nodes. Definition of a complete binary tree fro...

    crossoverJie 评论0 收藏0
  • 222. Count Complete Tree Nodes

    摘要:题目解答学了的方法哈哈这里是从开始算起,所以求出来的结果是实际是这一步很巧妙,把根结点加上,然后分治左结点和右结点,如果是叶子结点,在中就返回 题目:Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from Wikipedia:In a compl...

    callmewhy 评论0 收藏0
  • [Leetcode] Count Complete Tree Nodes 统计完全树节点数

    摘要:如果不等于,则是左子树的节点数,加上右子树的节点数,加上自身这一个。注意这里在左节点递归时代入了上次计算的左子树最左深度减,右节点递归的时候代入了上次计算的右子树最右深度减,可以避免重复计算这些深度做的幂时不要用,这样会超时。 Count Complete Tree Nodes Given a complete binary tree, count the number of nod...

    animabear 评论0 收藏0
  • [LeetCode] 501. Find Mode in Binary Search Tree

    Problem Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST. Assume a BST is defined as follows: The left subtree of a node c...

    NikoManiac 评论0 收藏0
  • [Leetcode-Tree] Path Sum I II III

    摘要:解题思路利用递归,对于每个根节点,只要左子树和右子树中有一个满足,就返回每次访问一个节点,就将该节点的作为新的进行下一层的判断。代码解题思路本题的不同点是可以不从开始,不到结束。代码当前节点开始当前节点左节点开始当前节点右节点开始 Path SumGiven a binary tree and a sum, determine if the tree has a root-to-lea...

    notebin 评论0 收藏0

发表评论

0条评论

kamushin233

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<