博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 222. Count Complete Tree Nodes
阅读量:5280 次
发布时间:2019-06-14

本文共 992 字,大约阅读时间需要 3 分钟。

complete binary tree (CBT) 的定义和 Full binary tree (FBT)类似。如果上图中这个深度为3的binary tree有15个node (2**depth - 1), 那么这个深度为3的binary tree就被填满了,是FBT。

上图中是一个CBT,因为他的所有12个node和FBT的前12个node位置相同。

思路: 沿着左臂一直往下找,和沿着右臂往下找的深度相同,那么这个树肯定是FBT,那么Node的个数就是2**depth - 1。否则就递归调用countNode。

1 class Solution(object): 2     def countNodes(self, root): 3         """ 4         :type root: TreeNode 5         :rtype: int 6         """ 7          8         if not root: 9             return 010         11         if self.depth(root, True) == self.depth(root, False):12             return 2** (self.depth(root, True)) - 113         else:14             return self.countNodes(root.left) + self.countNodes(root.right) +1 15         16     def depth(self, root, isLeft):17         ans = 018         while root:19             if isLeft == True:20                 root = root.left21             else:22                 root = root.right23             ans += 124         return ans

 

转载于:https://www.cnblogs.com/lettuan/p/6367184.html

你可能感兴趣的文章
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
模板设计模式的应用
查看>>
实训第五天
查看>>