“颗” -> “棵”
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
|
||||
首先回忆一下如何根据两个顺序构造一个唯一的二叉树,相信理论知识大家应该都清楚,就是以 后序数组的最后一个元素为切割点,先切中序数组,根据中序数组,反过来在切后序数组。一层一层切下去,每次后序数组最后一个元素就是节点元素。
|
||||
|
||||
如果让我们肉眼看两个序列,画一颗二叉树的话,应该分分钟都可以画出来。
|
||||
如果让我们肉眼看两个序列,画一棵二叉树的话,应该分分钟都可以画出来。
|
||||
|
||||
流程如图:
|
||||
|
||||
@@ -540,13 +540,13 @@ public:
|
||||
|
||||
# 思考题
|
||||
|
||||
前序和中序可以唯一确定一颗二叉树。
|
||||
前序和中序可以唯一确定一棵二叉树。
|
||||
|
||||
后序和中序可以唯一确定一颗二叉树。
|
||||
后序和中序可以唯一确定一棵二叉树。
|
||||
|
||||
那么前序和后序可不可以唯一确定一颗二叉树呢?
|
||||
那么前序和后序可不可以唯一确定一棵二叉树呢?
|
||||
|
||||
**前序和后序不能唯一确定一颗二叉树!**,因为没有中序遍历无法确定左右部分,也就是无法分割。
|
||||
**前序和后序不能唯一确定一棵二叉树!**,因为没有中序遍历无法确定左右部分,也就是无法分割。
|
||||
|
||||
举一个例子:
|
||||
|
||||
@@ -558,7 +558,7 @@ tree2 的前序遍历是[1 2 3], 后序遍历是[3 2 1]。
|
||||
|
||||
那么tree1 和 tree2 的前序和后序完全相同,这是一棵树么,很明显是两棵树!
|
||||
|
||||
所以前序和后序不能唯一确定一颗二叉树!
|
||||
所以前序和后序不能唯一确定一棵二叉树!
|
||||
|
||||
# 总结
|
||||
|
||||
@@ -570,7 +570,7 @@ tree2 的前序遍历是[1 2 3], 后序遍历是[3 2 1]。
|
||||
|
||||
大家遇到这种题目的时候,也要学会打日志来调试(如何打日志有时候也是个技术活),不要脑动模拟,脑动模拟很容易越想越乱。
|
||||
|
||||
最后我还给出了为什么前序和中序可以唯一确定一颗二叉树,后序和中序可以唯一确定一颗二叉树,而前序和后序却不行。
|
||||
最后我还给出了为什么前序和中序可以唯一确定一棵二叉树,后序和中序可以唯一确定一棵二叉树,而前序和后序却不行。
|
||||
|
||||
认真研究完本篇,相信大家对二叉树的构造会清晰很多。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user