摘要: 题目:234. 回文链表 思路:转换成数组,用双指针判断 代码: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * List 阅读全文
posted @ 2022-05-02 14:26 MintMin 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目:25. K 个一组翻转链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: 递归本质: 将问题划分成子问题,而子问题与问题有相同的算法逻辑和解决方案; 本题目可以划分成先以head开始的前k个节点进行反转,得到第k个节点后的结点b 剩下链表中的节点同样采取上述的操作, 阅读全文
posted @ 2022-05-02 13:13 MintMin 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目:92. 反转链表 II - 力扣(LeetCode) (leetcode-cn.com) 思路1: 递归 将链表中的left到right的部分反转,可以转换成以left为头节点head的前n(right-left+1)个结点的逆转 先思考将链表的前n个结点逆转的算法: ListNode suc 阅读全文
posted @ 2022-05-01 23:20 MintMin 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目:206. 反转链表 - 力扣(LeetCode) (leetcode-cn.com) 思路1: 迭代 对链表迭代,遍历到每一个元素,让该元素指针前一个节点; 这里需要注意的是要注意保存前驱节点以及后驱节点; 代码: /** * Definition for singly-linked list 阅读全文
posted @ 2022-05-01 20:10 MintMin 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目: 160. 相交链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: 要找到相交链表的第一个结点。可以先让链表A和链表B走相等的距离,指针第一次相遇时就是相交相交链表的第一个结点; 注意: 指针1走完A链表,再走B链表;指针2走完B链表,再走A链表; 代码如下: /* 阅读全文
posted @ 2022-05-01 19:50 MintMin 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题目:19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) (leetcode-cn.com) 思路1: 设链表的长度为n,删除倒数第k个结点;倒数第k个节点即是第n-k+1个节点; 一般的思路是先遍历链表得到长度n,再找到第n-k+1个节点的前驱节点n-k,对其删除。需要对两个进行两 阅读全文
posted @ 2022-05-01 19:38 MintMin 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目:876. 链表的中间结点 - 力扣(LeetCode) (leetcode-cn.com) 思路: 该题可以使用快慢指针的方法,根据慢指针走1步,快指针走2步的情况, a.如果链表的节点个数为奇数,则有一个中间节点: 可以推出当快指针fast到达链表最后一个节点的时候(fast != null 阅读全文
posted @ 2022-05-01 18:42 MintMin 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目:141. 环形链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: 判断链表是否有环,可以用到快慢指针的思想。如果链表有环的话,快慢指针在移动的过程中一定会相遇;反之链表没有环的话,快慢指针就不会相遇 算法: 1.先声明慢指针slow和快指针fast,都指向头节点。 阅读全文
posted @ 2022-04-30 23:17 MintMin 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目:23. 合并K个升序链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: 合并k个链表和合并2个链表的逻辑类似,都是迭代以此比较两个链表上的元素,取出小的节点加入合并的链表。 但是合并k个链表难点在于如何获得k链表的最小值,此时引入一个优先级队列,其实是一个最小堆,就 阅读全文
posted @ 2022-04-30 17:22 MintMin 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目链接:21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: 有两个有序链表l1和l2,这里的l1和l2是分别指向这两个有序链表的,按着顺序迭代两个链表。 无虚拟节点的情况: 确定合并链表的头节点指针head这里要对两个链表的情况进行划分,有四种情况: 阅读全文
posted @ 2022-04-29 21:22 MintMin 阅读(17) 评论(0) 推荐(0) 编辑