首页 > 其他分享 >力扣222 完全二叉树

力扣222 完全二叉树

时间:2023-01-29 18:33:53浏览次数:44  
标签:TreeNode val int 222 力扣 二叉树 root 节点

题目:

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。

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

示例:

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

思路:

递归:1+左子树+右子树

在处理单层逻辑的时候,一定要跳出单层的框,从宏观去想,这道题核心就是1+左子树+右子树,每一层都是这样。

/**
 * 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 countNodes(TreeNode root) {//1.参数和返回值
        if(root==null){//2.终止条件
            return 0;
        }
        int count1=0;
        int count2=0;
        //3.单层逻辑
        count1=countNodes(root.left); //左子树节点数
        count2=countNodes(root.right);//右子树节点数
        return 1+count1+count2;//根+左子树+右子树
    }
}

 

标签:TreeNode,val,int,222,力扣,二叉树,root,节点
From: https://www.cnblogs.com/cjhtxdy/p/17073566.html

相关文章

  • 代码随想录算法训练营第15天 | 二叉树的层序遍历226. 翻转二叉树 101.对称二叉树
    102.二叉树的层序遍历文章:代码随想录(programmercarl.com)视频:讲透二叉树的层序遍历|广度优先搜索|LeetCode:102.二叉树的层序遍历_哔哩哔哩_bilibili思路:层序遍......
  • 力扣-82-删除排序链表中的重复元素Ⅱ
    这个删除重复不太常规的是:它不是删除多出来的剩下一个,而是比如有三个1,1重复了,那这三个1节点都不要 ListNode*deleteDuplicates(ListNode*head){ if(!head)returnh......
  • 代码随想录算法训练营day14 | leetcode 层序遍历 226.翻转二叉树 101.对称二叉树 2
    层序遍历/***二叉树的层序遍历*/classQueueTraverse{/***存放一层一层的数据*/publicList<List<Integer>>resList=newArrayList<>()......
  • 力扣---2315. 统计星号
    给你一个字符串s,每两个连续竖线'|'为一对。换言之,第一个和第二个'|'为一对,第三个和第四个'|'为一对,以此类推。请你返回不在竖线对之间,s中'*'的数目。注意......
  • 力扣-56-合并区间
    好吧,上一题排序的思路其实是这一题的…......
  • 力扣-57-插入区间
    采用最直接的思路,if-else去考虑每一种情况并做出操作(比如找到新区间左端点落在哪个位置,几种情况,然后再去考虑右端点的几种情况)是非常细致繁琐的,以至于很容易出错考虑三种......
  • 257. 二叉树的所有路径
    问题描述https://leetcode.cn/problems/binary-tree-paths/description/解题思路叶子结点时,添加到结果序列即可。代码#Definitionforabinarytreenode.#class......
  • 226. 反转二叉树
    问题描述https://leetcode.cn/problems/invert-binary-tree/description/解题思路没啥好说的,python的交换简单极了。代码#Definitionforabinarytreenode.#cl......
  • 144. 二叉树的前序遍历
    问题描述https://leetcode.cn/problems/binary-tree-preorder-traversal/description/解题思路二叉树的先序遍历,没啥好说的。中-左-右。先序中序后序说的是中在哪里。......
  • 145. 二叉树的后序遍历
    问题描述https://leetcode.cn/problems/binary-tree-postorder-traversal/description/解题思路这个题和先序一样,没啥好说的。代码#Definitionforabinarytreen......