当前位置:网站首页>Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
2022-07-05 19:59:00 【Taotao can't learn English】
222. The number of nodes in a complete binary tree
Give a completely binary tree , Find out the number of nodes of the tree .
Example 1:
- Input :root = [1,2,3,4,5,6]
- Output :6
Example 2:
- Input :root = []
- Output :0
Example 3:
- Input :root = [1]
- Output :1
Tips :
- The number of nodes in the tree ranges from [0, 5 * 10^4]
- 0 <= Node.val <= 5 * 10^4
- The topic data ensures that the input tree is Perfect binary tree
Direct sequence traversal search , It can be regarded as a happy method .
package com.programmercarl.tree;
import java.util.ArrayDeque;
import java.util.Deque;
/** * @ClassName CountNodes * @Descriotion TODO * @Author nitaotao * @Date 2022/7/4 10:15 * @Version 1.0 * https://leetcode.cn/problems/count-complete-tree-nodes/ * 222. The number of nodes in a complete binary tree **/
public class CountNodes {
public int countNodes(TreeNode root) {
/** * Sequence traversal */
if (root == null) {
return 0;
}
Deque<TreeNode> deque = new ArrayDeque<TreeNode>();
deque.offer(root);
int sum = 0;
while (!deque.isEmpty()) {
int size = deque.size();
while (size > 0) {
root = deque.pop();
sum++;
if (root.left != null) {
deque.offer(root.left);
}
if (root.right != null) {
deque.offer(root.right);
}
size--;
}
}
return sum;
}
}

According to the properties of full binary tree , Number of nodes = front n-1 Number of layer nodes + Number of nodes in the last layer
front n-1 Number of layer nodes = 2^(n-1) -1
/** * According to the properties of complete binary tree * * @param root * @return */
public int countNodes(TreeNode root) {
if (root == null) {
return 0;
}
int leftDepth = getDepth(root.left);
int rightDepth = getDepth(root.right);
if (leftDepth == rightDepth) {
// If the depth is equal , Then the left side is full of binary trees
// leftDepth Is to calculate the depth from the head node of the current subtree , Not the root node of two trees
// ( 2 ^ leftDepth - 1 ) + 1 1 It is the root node of two trees
return ((1 << leftDepth) - 1) + 1 + countNodes(root.right);
} else {
// The right subtree is a full binary tree
return ((1 << rightDepth) - 1) + 1 + countNodes(root.left);
}
}
/** * From current subtree Start to calculate the depth * * @param root * @return */
public int getDepth(TreeNode root) {
int depth = 0;
while (root != null) {
root = root.left;
depth++;
}
return depth;
}

边栏推荐
- 【c语言】归并排序
- 安信证券在网上开户安全吗?
- 期货如何网上开户?安不安全?
- 城链科技数字化创新战略峰会圆满召开
- ffplay文档[通俗易懂]
- How to safely and quickly migrate from CentOS to openeuler
- 常用运算符与运算符优先级
- Is it safe for Guosen Securities to open an account online?
- Is it safe for Anxin securities to open an account online?
- Debezium series: PostgreSQL loads the correct last submission LSN from the offset
猜你喜欢

浅浅的谈一下ThreadLocalInsecureRandom

No matter how busy you are, you can't forget safety

How to apply smart contracts more wisely in 2022?

Elk distributed log analysis system deployment (Huawei cloud)

力扣 729. 我的日程安排表 I

Redis cluster simulated message queue

aggregate

四万字长文说operator new & operator delete

Using repositoryprovider to simplify the value passing of parent-child components

Parler de threadlocal insecurerandom
随机推荐
中金财富在网上开户安全吗?
Four methods of random number generation | random | math | threadlocalrandom | securityrandom
【obs】libobs-winrt :CreateDispatcherQueueController
c語言oj得pe,ACM入門之OJ~
Bitcoinwin (BCW)受邀参加Hanoi Traders Fair 2022
S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo
ICTCLAS用的字Lucene4.9捆绑
Wildcard selector
leetcode刷题:二叉树16(路径总和)
DP:树DP
Common operators and operator priority
城链科技数字化创新战略峰会圆满召开
How about testing outsourcing companies?
selenium 元素信息
Go language learning tutorial (XV)
Go language learning tutorial (16)
Interviewer: what is the internal implementation of set data types in redis?
Postman core function analysis - parameterization and test report
IBM has laid off 40 + year-old employees in a large area. Mastering these ten search skills will improve your work efficiency ten times
【obs】QString的UTF-8中文转换到blog打印 UTF-8 char*