从前序与中序遍历序列构造二叉树
# 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] 输出: [3,9,20,null,null,15,7] 示例 2: 输入: preorder = [-1], inorder = [-1] 输出: [-1] 提示: 1 <= preorder.length <=...
more...从中序与后序遍历序列构造二叉树
# 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3] 输出:[3,9,20,null,null,15,7] 示例 2: 输入:inorder = [-1], postorder = [-1] 输出:[-1] 提示: 1 <= inorder.length <=...
more...二叉树最大深度-使用非递归后序遍历求解
# 二叉树最大深度 - 使用非递归后序遍历实现 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示: 树中节点的数量在 [0, 104] 区间内。 -100 <= Node.val <= 100 # 思路分析: 使用非递归 的 后序遍历 我们需要使用到 栈 将经过的 节点 压入栈中 我们先是 向左走到走并且 将 经过的所有节点都压入栈...
more...二叉树最大深度-使用递归后序遍历求解
# 二叉树最大深度 - 使用递归实现后序遍历求解 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示: 树中节点的数量在 [0, 104] 区间内。 -100 <= Node.val <= 100 #...
more...二叉树最大深度-使用层序遍历
# 二叉树最大深度 - 使用层序遍历 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示: 树中节点的数量在 [0, 104] 区间内。 -100 <= Node.val <= 100 # 思路分析: 使用层序遍历,层数即最大深度 # 我们先实现 层序遍历的代码: LinkedList<HeroNode> s =...
more...