双指针
文章平均质量分 63
Trista__
这个作者很懒,什么都没留下…
展开
-
一期关于数组、链表、字符串去重(双指针)
去重twoSum 3sum 4sum双指针原创 2021-05-21 10:16:57 · 201 阅读 · 0 评论 -
判断链表是否有环,找环的起点(双指针)
判断链表是否有环,找环的起点(双指针)LeetCode141题目描述:一般的单链表是没有环的,也就是说链表的尾节点指向null,而环形链表一直追溯next可以遍历到相同的值,且没有节点的next指向null。判断链表是否有环可以采用双指针方法,定义一个慢指针slow和一个快指针fast,慢指针每次走一步,快指针每次走两步,那么快指针如果和慢指针相遇了就说明链表有环。public class Solution { public boolean hasCycle(ListNode head)原创 2021-05-12 14:19:14 · 755 阅读 · 1 评论 -
回文链表(双指针法)
回文链表(双指针法)LeetCode234题目描述:这道题很容易想到一种方法:将整条链表反转和原先的链表进行比较,如果每个节点都一样,说明这个链表是回文链表。但是事先需要对原链表进行复制操作。下面介绍一种快慢指针的方法,定义一个快指针和一个慢指针,快指针每次走两步,慢指针每次走一步,当快指针走到链表尾部的时候,慢指针就来到了链表的中心。注意链表长度是奇数和偶数存在不同的情况,如下图链表长度为偶数,则快指针为空时,慢指针到达中心位置:而链表长度为奇数时,快指针的下一个节点为空时,慢指针来到中心位原创 2021-05-12 10:14:04 · 235 阅读 · 0 评论 -
删除链表的倒数第 N 个结点(双指针)
删除链表的倒数第 N 个结点LeetCode19题目描述:要做的有两件事:一找到要删除的节点,二让这个节点的前面一个节点指向要删除节点的后一个节点1. 三指针法这个方法是自己想的有点繁琐。定义三个指针,一个记录要删除的节点,一个记录待删除节点的前一个节点,最后一个用于遍历。对头节点要另外做处理。class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head.next ==原创 2021-05-11 21:49:28 · 221 阅读 · 0 评论