满二叉树 vs. 完美二叉树

来源:12-1 平衡树和AVL

Poplar_hills

2019-01-03

Hi bobo 老师

在课程中多次提到“满二叉树”的概念并给出了下图这样的例子
图片描述
图1

但是根据满二叉树的定义“除了叶子节点所有其它节点都有左右两棵子树”以及 StackOverflow 上的这个回答 满二叉树还有可能是这样的
图片描述
图2

而图1中的虽然也是满二叉树但是是一种特例因为它又“满”又“平衡”而图2中的似乎更具有一般性。另外在那个 StackOverflow 的回答里把图1中的树叫做“完美二叉树”。

因为我不是计算机科班出身所以想请问 bobo 老师大学计算机课程中是否会区别“满二叉树”和“完美二叉树”以及咱们课程中是否也需要区别一下这两种树比较好呢

谢谢~

写回答

1回答

liuyubobobo

2019-01-03

赞!:)


对于这个定义,国内外确实存在差异。这个差异可以参考这里:https://baike.baidu.com/item/%E6%BB%A1%E4%BA%8C%E5%8F%89%E6%A0%91


对于这个差异,了解就好了,通常在具体的任务中(比如算法面试问题中),如果有类似的名词,一定会更详细的定义所阐述的数的性质的:)比如这个问题:https://leetcode.com/problems/all-possible-full-binary-trees/


即便是没有歧义的名词,也一定会在题目中解释清楚的,比如完全二叉树,属于没有歧义的名词,但题目中遇到也一定会解释清楚的。比如这个问题:https://leetcode.com/problems/count-complete-tree-nodes/


当然,如果在面试中,觉得一些名词存在歧义,还是需要和面试官交互,定义清晰:)


继续加油!:)

2
1
Poplar_hills
非常感谢!
2019-01-03
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程