双指针解决链表的问题

1. 背景

双指针解决链表相关的问题,基本都是中等难度

  1. 删除链表的倒数第 N 个结点
  2. 旋转链表

2. 方案

leetcode 19

ini 复制代码
public ListNode removeNthFromEnd(ListNode head, int n){
    ListNode second = head;
    ListNode first = head;
    for (int i = 0; i < n; i++) {
        first = first.next;
    }
    if (first == null){
        return head.next;
    }
    while(first.next != null){
        first = first.next;
        second = second.next;
    }
    second.next = second.next.next;
    return head;

}

leetcode 61

ini 复制代码
public ListNode rotateRight(ListNode head, int k){
    if (head == null || head.next == null){
        return head;
    }
    ListNode temp = head;
    int lens = 1;
    while (temp.next != null){
        lens ++;
        temp = temp.next;
    }
    k = k % lens;
    ListNode first = head;
    ListNode second = head;
    int idx = 0;
    while(first.next != null){
        if (idx ++ < k){
            first = first.next;
        } else {
            first = first.next;
            second = second.next;
        }
    }
    first.next = head;
    head = second.next;
    second.next = null;
    return  head;
}
相关推荐
Victor35636 分钟前
Redis(154)Redis的数据一致性如何保证?
后端
r***869840 分钟前
springboot三层架构详细讲解
spring boot·后端·架构
Victor35643 分钟前
Redis(155)Redis的数据持久化如何优化?
后端
许泽宇的技术分享1 小时前
AgentFramework-零基础入门-第08章_部署和监控代理
人工智能·后端·agent框架·agentframework
IT_陈寒1 小时前
Python开发者必看:5个被低估但能提升200%编码效率的冷门库实战
前端·人工智能·后端
g***78911 小时前
鸿蒙NEXT(五):鸿蒙版React Native架构浅析
android·前端·后端
我是小妖怪,潇洒又自在2 小时前
springcloud alibaba(四)OpenFeign实现服务调用
后端·spring·spring cloud·springboot
w***74408 小时前
SpringBoot项目如何导入外部jar包:详细指南
spring boot·后端·jar
tsumikistep10 小时前
【前后端】接口文档与导入
前端·后端·python·硬件架构
码事漫谈10 小时前
为什么C语言拒绝函数重载?非要重载怎么做?
后端