900 1 分钟

# 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 1000] 内 -100 <= Node.val <= 100 # 思路分析: 比如说 我给出一个 对称的二叉树如下图所示: 那么怎么判断它到底是不是对称的呢? 首先根节点不用检查,我们让 根节点的...
2.7k 2 分钟

# 从前序与中序遍历序列构造二叉树 给定两个整数数组 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 <=...
1.6k 1 分钟

# 从中序与后序遍历序列构造二叉树 给定两个整数数组 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 <=...
4k 4 分钟

# 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入:root = [] 输出:[] 提示: 树中节点数目在范围 [0, 2000] 内 -1000 <= Node.val <= 1000 # 题目要求分析: 对二叉树进行一个层序遍历,顺序是一层一层的遍历 1 /...
1k 1 分钟

# 二叉树最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 ** 说明:** 叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 提示: 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 如果已经学习过 二叉树最大深度的话 你可能会想到 这样写,如下代码: public int...
885 1 分钟

# 二叉树最小深度 - 层序遍历实现 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 ** 说明:** 叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 提示: 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 # 思路分析: 对于求二叉树最大深度这个规律比较好找 就是...
1.1k 1 分钟

# 二叉树最大深度 - 使用非递归后序遍历实现 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示: 树中节点的数量在 [0, 104] 区间内。 -100 <= Node.val <= 100 # 思路分析: 使用非递归 的 后序遍历 我们需要使用到 栈 将经过的 节点 压入栈中 我们先是 向左走到走并且 将 经过的所有节点都压入栈...
538 1 分钟

# 二叉树最大深度 - 使用递归实现后序遍历求解 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 提示: 树中节点的数量在 [0, 104] 区间内。 -100 <= Node.val <= 100 #...
1.1k 1 分钟

# 二叉树最大深度 - 使用层序遍历 给定一个二叉树 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 =...
1.3k 1 分钟

# 二叉树 Z 层遍历 # 介绍: 比如说如下有一个二叉树: 1 / \ 2 3 /\ /\ 4 5 6 7 /\ 8 9 那么上面的二叉树的遍历流程应该是下面的: 1 32 4567 98 它的遍历层序是一个 Z 字的形状 # 该题目在 leetcode 中的 介绍如下: 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[20,9],[15,7]] 示例...