阿基用快慢指针带你刷遍leetcode的链表题——删除链表节点题

剑指offer18.删除链表的节点

class Solution {
    public ListNode deleteNode(ListNode head, int val) {
        if(head.val == val){
            return head.next;
        }
        ListNode fast = head.next;
        ListNode slow = head;
        while(fast.val != val && fast!=null){
            slow = fast;
            fast = fast.next;   
        }
        if(fast !=null){
            slow.next = fast.next;
        }
        return head;
    }
}

19.删除链表的倒数第N个节点

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
       ListNode pre = new ListNode(0);
       pre.next = head;
       ListNode start = pre, end = pre;
       while(n != 0){
           start = start.next;
           n--;
       }
       while(start.next != null){
           start = start.next;
           end = end.next;
       }
       end.next = start;
       return pre.next;
    }
}

class Solution {
    public ListNode removeNthFromEnd(ListNode head,int n){
        ListNode pre = new ListNode(0) ;
        pre.next = head;
        ListNode fast = pre ,slow = pre;
        while(n>0){
            fast = fast.next;
            if(fast == null){
                return null;
            }
            n--;
        }
        while(fast != null && fast.next != null){
            slow = slow.next;
            fast = fast.next;
        }
        slow.next = slow.next.next;
        return pre.next;
    }
}
posted @   爱写代码的基  阅读(90)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示