置顶文章
精选分类
Java
错误记录
其他
前端
数据库
算法
计算机网络
计算机科学文章列表
将有序数组转成二叉搜索树
# 1. 将有序数组转成二叉搜索树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 # 题解 在数组中选取一个元素为根节点,然后递归构造左右子树 注意:二叉搜索树的中序遍历是升序序列,题目中给的就是升序数组,因此可以确保是二叉树中的中序遍历序列。 # 1. 中序遍历:选择中间左边的数字作为根节点 class Solution { public TreeNode sortedArrayToBST(int[] nums)...
more...二叉树最大深度
# 1. 题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回最大深度:3 # 我的题解 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} *...
more...深度优先遍历&广度优先遍历
# 1. 深度优先搜索 1. 如果两个结点都为空则两个二叉树相同, 2. 如果其中一个结点为空,则两个二叉树不相同, 3. 如果节点值相同,在判断左子树和右子树是否相同。 递归的判断两个子树是否相同。 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } else if (p == null || q == null)...
more...下一个更大元素
# 题目 nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中 nums1 是 nums2 的子集。 对于每个 0 <= i < nums1.length ,找出满足 nums1 [i] == nums2 [j] 的下标 j ,并且在 nums2 确定 nums2 [j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是 -1 。 返回一个长度为 nums1.length 的数组 ans...
more...二叉树后续序遍历
# 题目 给定一个二叉树的根节点 root ,返回 它的 后序 遍历 *。 示例 1: 输入:root = [1,null,2,3]输出:[1,3,2]示例二: 输入:root = []输出:[]示例 3: 输入:root = [1] 输出:[1] tips: 树中节点数目在范围 [0, 100] 内 -100 <= Node.val <= 100 # 解法一:使用递归 建议先看中序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val;...
more...二叉树前序遍历
# 题目 给定一个二叉树的根节点 root ,返回 它的 前序 遍历 。 示例 1: 输入:root = [1,null,2,3]输出:[1,3,2]示例二: 输入:root = []输出:[]示例 3: 输入:root = [1] 输出:[1] tips: 树中节点数目在范围 [0, 100] 内 -100 <= Node.val <= 100 # 解法一:使用递归 建议先看中序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val;...
more...