目录 题目 思路1(迭代) 代码 复杂度分析 思路2(递归) 代码 复杂度分析 题目 92. 反转链表 II 思路1(迭代) 将反转链表分成3个部分:前一段未反转的部分.待反转链表部分.后一段未反转部分 将3个片段分离后,然后再连接起来 细节注意:如果是从第一个开始反转链表,即前一段未反转的部分不存在,那么返回的结果就直接是反转链表片段的新节点,否则就是head 代码 class Solution { public ListNode reverseBetween(ListNode head, i…
前言 有句话叫做:如果面试官跟你看顺眼的话,就给你出一道反转链表,否则就出一道 hard. 所以反转链表不能不会吧,要不面试官想要你都没有机会了. 206. 反转链表 class Solution { public ListNode reverseList(ListNode head) { } } 迭代 迭代就是遍历链表,需要有个 cur 指针在链表上游走. 先思考一般情况,假设遍历到某一节点,应该做什么? 如上图所示,应该修改其 next 指针,指向前一个节点.由于单链表的性质,无法从当前节点…
541. 反转字符串 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string-ii 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. 题目描述 给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符. 如果剩余字符少于 k 个,则将剩余字符全部反转. 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样. 示例 1:…
Leetcode 7.整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: -123 输出: -321 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 看了看官方的解题,感觉不是很好理解,这里给出我的思路(Java) 首先是反转,对整数取余获得整数对最后一位数推入结果集前面 我们使用long来保存结果,这样的话判断是否溢出就会比较简单 判…
原题 1 class Solution: 2 def reverseStr(self, s: str, k: int) -> str: 3 begin,lens,ans = 0,len(s),'' 4 while begin < lens: 5 mid = begin + k 6 if mid >= lens: 7 ans += s[begin:][::-1] 8 else: 9 ans += s[begin:mid][::-1]+s[mid:mid+k] 10 begin += 2 *…
题目一 力扣143.重排链表 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reorder-list/ 1.描述 给定一个单链表L的头节点head,单链表 L 表示为: L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → - 不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 2.示例 示例 1: 输入:head = [1,2,3…
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前置节点来排除第一个节点就是重复元素的特例. 同样是使用快慢针解决问题.不再详细叙述. 代码如下: class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode ret = new ListNode(0); re…
题目描述: 中文: 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3. 英文: Given a singly li…
题目描述: 中文: 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 说明:不允许修改给定的链表. 英文: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. To represent…
题目描述: 中文: 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 英文: Given a linked list, determine if it has a cycle in it. To represent a cycle in the given linked list, we use an integer pos which represents the…