axi的leetcode之路
文章平均质量分 58
我是一个大西瓜.
韶光易逝,劝君惜取少年时。
展开
-
二叉树之遍历
2021.11.28 所有递归问题都可以抽象为二叉树的遍历。 1、二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 思路 递归 临界条件:root = null class Solution { public List<Integer> preorderTraversa原创 2021-11-29 09:28:14 · 511 阅读 · 0 评论 -
leetcode刷题之二叉树
递归算法的关键 **首先:明确函数定义,相信这个定义,不要**跳进递归。 **其次:**搞明白root节点自己要做什么,然后根据题目要求选择前中后序递归框架。 **最后:**思考出每个节点需要做什么,刷题。 习题1:翻转二叉树 首先,明确函数定义 即,交换根节点的左右节点位置,返回翻转后的节点。 其次,明确root自己做什么 他要交换它的两个子节点,故选择前序遍历 再者,明确子节点都要做什么 让每个子节点都去翻转他们的左右子节点。 最后,明确边界条件 当root == null时,证明执行到了叶子节点,终原创 2021-11-11 23:17:02 · 4187 阅读 · 0 评论 -
刷题技巧之二叉树
递归算法的关键 **首先:明确函数定义,相信这个定义,不要**跳进递归。 **其次:**搞明白root节点自己要做什么,然后根据题目要求选择前中后序递归框架。 **最后:**思考出每个节点需要做什么,刷题。 习题1:翻转二叉树 首先,明确函数定义 即,交换根节点的左右节点位置,返回翻转后的节点。 其次,明确root自己做什么 他要交换它的两个子节点,故选择前序遍历 再者,明确子节点都要做什么 让每个子节点都去翻转他们的左右子节点。 最后,明确边界条件 当root == null时,证明执行到了叶子节点,终转载 2021-11-07 18:34:10 · 193 阅读 · 0 评论 -
leetcode 二叉树遍历
1、前序遍历 1、迭代 思路: 通过双向队列Deque来模拟栈 两层while循环,外层判断是否遍历结束,内层判断是否到达最左节点 未到达就一直找左子树,每一个都存入list中。 到达根节点,出栈,判断该节点是否有右子树,遍历右子树的左子树。。。 循环结束,迭代完毕。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeN原创 2021-10-22 21:16:53 · 73 阅读 · 0 评论 -
leetcode 第二天 合并两个有序数组
合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例 1: 输入:nums1 =原创 2021-10-18 23:01:03 · 98 阅读 · 1 评论 -
leetcode 第一天
1、旋转矩阵 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7],原创 2021-10-16 21:36:45 · 49 阅读 · 0 评论