和之前的中序遍历和先序遍历没什么大的改变,只需要改变一下 list.add 的位置。 主要就是用栈要模拟递归的过程,区别于之前 94 题中序遍历和 144 题先序遍历,后序遍历的非递归形式会相对难一些。 原因就是,当遍历完某个根节点的左子树,回到根节点的时候 ...
根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 思路 首先回忆一下如何根据两个顺序构造一个唯一的二叉树,相信理论知识大家 ...
上面有2个问题: 问题1:看一下第2个sql和第3个sql,分别是第2页和第3页的数据,结果出现了相同的数据,是不是懵逼了。 问题2:整个表只有8条记录,怎么会出现第5页的数据呢,又懵逼了。 我们来分析一下上面的原因: 主要是b字段存在相同的值,当排序过程 ...
Note: Recursive solution is trivial, could you do it iteratively? 经典题目,求二叉树的后序遍历的非递归方法,跟前序,中序,层序一样都需要用到栈,后序的顺序是左-右-根,所以当一个结点值被取出来时,它的左右子结点要么不存在,要么已经被访问过了。先将根结点压 ...