给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。
这样的遍历顺序差异,导致了preorder和inorder数组中的元素分布有如下特点:
通过上面的图观察规律,前序遍历第一个值肯定是根结点,中序遍历,根结点左边都是左子树,右边都是右子树
给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:
在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地...
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
方法1:递归 对比求最大深度,只有一个地方需要注意,那就是如果左右子树有一边为null而另一边不为null,最小深度不是0+1,而是另一个不为null子树的最小深度+1...
这里巧妙一处在于,for循环的范围是level_length,这样即使当在for循环中queue添加了节点,也是会到下一层了,如果是直接用queue.size();会一直都在一层
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”...
在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。