给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 示例 2: 提示: 解题: 官方解答: 1.深度优先搜索 2.广度优先搜索
算法
LeetCode 110 平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.自顶向下的递归 2.自底向上的递归
LeetCode 109 有序链表转换二叉搜索树
给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。 示例 1: 示例 2: 提示: 解题: 官方解法: 1.分治 2.分治 + 中序遍历优化
LeetCode 108 将有序数组转换为二叉搜索树
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1: 示例 2: 提示: 解题: 官方解答: 1.中序遍历,总是选择中间位置左边的数字作为根节点 2.中序遍历,总是选择中间位置右边的数字作为根节点 3.中序遍历,选择任意一个中间位置数字作为根节点
LeetCode 107 二叉树的层序遍历 II
给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.广度优先搜索
LeetCode 106 从中序与后序遍历序列构造二叉树
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 示例 2: 提示: 解题: 官方解答: 1.递归 2.迭代
LeetCode 105 从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 示例 2: 提示: 解答: 官方解答: 1.递归 2.迭代
LeetCode 104 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7] 返回它的最大深度 3 。 解题: 官方解答: 1.深度优先搜索 2.广度优先搜索
LeetCode 103 二叉树的锯齿形层序遍历
给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.广度优先遍历