题目如下:给出一个二叉树的前序遍历,输出这个树所有可能的中序遍历(有时也会可能会是后序遍历)
对应于一棵二叉树的前序遍历,我们知道,前序遍历的第一个节点,一定是根节点。所以,我们可以很容易的找出根节点,剩下的部分呢,是左子树和右子树节点在一起了,本题的难点就在于,你如何去将前序遍历的结果中除去根节点部分的其余节点分为左右子树的节点。暴力一些就是慢慢拆。以前序遍历{1,2,3}为例。
因为节点较少,分析起来也很直观,所以我们可以分为以上几种情况,对于case1和case3,我们可以看出,case1中的2,3又可以存在两种不同的情况,case3中的左子树同理。可以分为

给定二叉树的前序遍历,如何输出所有可能的中序遍历?本文通过分析前序遍历特点,探讨解决思路。首先,根节点是前序遍历的第一个元素;接着,前序遍历剩余部分为左右子树混合,需进行拆分。以{1,2,3}为例,可得出5种情况。同时,借助另一道重建二叉树的题目,利用递归方式,根据前序和中序遍历确定根、左子树、右子树,逐步构建整棵树。"
122240899,11788192,WPF TreeView 数据绑定后的查询与定位技巧,"['wpf', 'c#']
最低0.47元/天 解锁文章
787

被折叠的 条评论
为什么被折叠?



