给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
由于前序遍历和中序遍历的长度是相同的,所以我们也能知道前序遍历的左右字数的区间范围
如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
DFS左子树深度,DFS右子树深度,树的深度=Max(左子树,右子树)+root节点
迭代:中序遍历一般等同于DFS,用Stack来实现,后进先出。迭代是先把左子树全部添加进Stack中,然后弹出一个尾部,获得对应的val之后遍历右子树,在添加左子树的时候同时也添加了根节点,所以pop弹出时再添加val实际上会对左子树和...
不过奇怪的是这个题跑不过测试用例.......只能换成栈来做,也就是调整一下加入顺序,需要先添加右子树,再添加左子树,由于pop是后进先出,所以弹出的顺序变为了先弹出左子树,再是右子树,变成了Queue的先进先出的样子...
迭代:后序遍历的方式是左右根,前序遍历是根左右,如果用Stack来实现根左右,那么左边先加入就会后出,右边后加入会先出,于是看似是add(left)之后add(right),实际上会先访问到right再访问left,从而实现前序遍历得到根右左,即后序...
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”...
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。