我是靠谱客的博主 虚心溪流,最近开发中收集的这篇文章主要介绍leetcode-222:完全二叉树的节点个数题目解题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

leetcode-222:完全二叉树的节点个数

  • 题目
  • 解题

题目

题目链接

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

示例 1:
在这里插入图片描述

输入:root = [1,2,3,4,5,6]
输出:6

示例 2:

输入:root = []
输出:0

示例 3:

输入:root = [1]
输出:1

在这里插入图片描述

解题

python解法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def countNodes(self, root: TreeNode) -> int:
        if not root:
            return 0
        queue = [root]
        num = 1
        while queue:
            l = len(queue)
            for _ in range(l):
                cur = queue.pop(0)
                left,right = cur.left,cur.right
                if left:
                    queue.append(left)
                    num+=1
                if right:
                    queue.append(right)
                    num+=1
        return num

c++解法

class Solution {
public:
    int countNodes(TreeNode* root) {
        if(!root) return 0;
        queue<TreeNode*> queue;
        queue.push(root);
        int num=0;
        while(!queue.empty()){
            int l=queue.size();
            for(int i=0;i<l;i++){
                TreeNode* cur=queue.front();
                queue.pop();
                num++;
                if(cur->left) queue.push(cur->left);
                if(cur->right) queue.push(cur->right);
            }
        }
        return num;
    }
};

java解法

class Solution {
    public int countNodes(TreeNode root) {
        if(root==null) return 0;
        Queue<TreeNode> q=new LinkedList<>();
        q.add(root);
        int res=0;
        while(!q.isEmpty()){
            TreeNode cur=q.poll();
            if(cur.left!=null) q.add(cur.left);
            if(cur.right!=null) q.add(cur.right);
            res++;
        }
        return res;
    }
}

最后

以上就是虚心溪流为你收集整理的leetcode-222:完全二叉树的节点个数题目解题的全部内容,希望文章能够帮你解决leetcode-222:完全二叉树的节点个数题目解题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部