写过前序和中序遍历的递归,想必后序遍历也不在话下。需要注意将节点的值放入结果数组的顺序。
先使用递归来求解。前序遍历的顺序是根左右,因此先将当前节点的值放入结果数组中,然后再递归的求出左节点和右节点即可。
给你二叉树的根节点 root ,返回其节点值 「自底向上的层序遍历」 。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)。
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。
本题可采用递归的思路进行题解。要求出二叉树的最大深度,可以求出左右子树的最大深度,找到较大者并且加一便是二叉树本身的最大深度。递归终止条件是:如果当前节点为空,则返回0,没有节点说明深度为0。...
给你二叉树的根节点 root ,返回其节点值的 「层序遍历」 。(即逐层地,从左到右访问所有节点)。
首先来看递归终止条件。当前节点的左右子节点都是空,那么当前节点就是对称的,直接返回true。如果当前节点只有左子节点或者右子节点,或者子节点的值不相等,那就是不对称的,直接返回false。...
递归方式整体思路都是类似的,唯一不同的地方在于将节点放入结果数组的时机。需要跟前中后的顺序对应起来。
你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。...
然后开始递归,递归参数的意义是根节点在前序遍历的索引root、子树在中序遍历的左边界left、子树在中序遍历的右边界right。