随笔分类 - 数据结构与算法 / 迭代
摘要:1.题目 题目地址(430. 扁平化多级双向链表 - 力扣(LeetCode)) https://leetcode.cn/problems/flatten-a-multilevel-doubly-linked-list/ 题目描述 你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和
阅读全文
摘要:1.题目 题目地址(203. 移除链表元素 - 力扣(LeetCode)) https://leetcode.cn/problems/remove-linked-list-elements/ 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val =
阅读全文
摘要:1.题目介绍 题目地址(396. 旋转函数 - 力扣(LeetCode)) https://leetcode.cn/problems/rotate-function/ 题目描述 给定一个长度为 n 的整数数组 nums 。 假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义
阅读全文
摘要:1.题目介绍 2.题解 2.1 二分查找(递归实现) 思路 利用递归+二分查找实现对于目标数target索引位置(存在)或者插入位置的索引(不存在) 1.递归返回条件: left > right,在通过二分法寻找到最接近target的值nums[mid]依旧不等于target,也就是left ==
阅读全文
摘要:1.题目介绍 2.题解 本题的方法被称为「快速幂算法」,有递归和迭代两个版本。这篇题解会从递归版本的开始讲起,再逐步引出迭代的版本。 当指数 n为负数时,我们可以计算 x^-n再取倒数得到结果,因此我们只需要考虑 n 为自然数的情况。 2.1 模拟(不推荐,时间复杂度过高) 思路 分为n>=0, n
阅读全文
摘要:1.题目介绍 题目地址(24. 两两交换链表中的节点 - 力扣(LeetCode)) https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本
阅读全文
摘要:1.题目介绍 给你一个二叉树的根节点 , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 \([1, 100
阅读全文
摘要:题目介绍 给你一个单链表的头节点 ,请你判断该链表是否为回文链表。如果是,返回 ;否则,返回 。 示例 1: 输入:head = [1,2,2,1] 输出:true 示例 2: 输入:head = [1,2] 输出:false 提示: 链表中节
阅读全文
摘要:1.题目介绍 题目地址(206. 反转链表 - 力扣(LeetCode)) https://leetcode.cn/problems/reverse-linked-list/ 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,
阅读全文
摘要:1.题目介绍 给定一个二叉树的根节点 root ,返回 它的 后序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[3,2,1] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 1
阅读全文
摘要:1.题目介绍 给定一个二叉树的根节点 root ,返回 它的 前序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 1
阅读全文
摘要:1.题目介绍 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 1
阅读全文
摘要:1.题目 使用迭代,并通过辗转相除法求最大公约数 2.代码 // // Created by trmbh on 2023-09-13. /* 辗转相除法 */ // #include "stdio.h" int fun(int m, int n) { int r; if (n > m) return
阅读全文