博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 19 删除链表的倒数第N个节点
阅读量:4143 次
发布时间:2019-05-25

本文共 775 字,大约阅读时间需要 2 分钟。

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

题目

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

思路

定义两个快慢指针,一个标记指针,需要删除倒数第N个节点,就让快指针先跑N个节点,然后三个指针同时跑,当快指针为NULL时标记指针不动,则标记指针为需要删除指针的前一个

注意 在快指针跑N个节点后就为NULL的情况下,意思就是删除第一个节点,直接让头结点后移一位就可

代码

struct ListNode* removeNthFromEnd(struct ListNode* head, int n){    struct ListNode *quick = head;    struct ListNode *slow = head;    struct ListNode *f = head;    while(n--) {        quick = quick -> next;    }    while(quick) {        quick = quick -> next;        slow = slow -> next;        if(quick) {            //quick指针不再变动,即为NULL时,f指针不动            f = f-> next;        }    }    if(slow == head) {        head = head -> next;    } else {        f -> next = slow -> next;    }    return head;}

转载地址:http://pwkti.baihongyu.com/

你可能感兴趣的文章
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
apache和tomcat整合
查看>>
java虚拟机错误问题
查看>>
oracle建立表空间
查看>>
oracle分区表的性能提升
查看>>
"Cannot allocate memory" OutofMemory when call Ant to build Polish project in Tomcat
查看>>
dumpcap抓包(python)
查看>>
查看文件是否被其他进程访问
查看>>
字符编码详解
查看>>
python使用dpkt分析wireshak报文(Modbus规约)
查看>>
css中的IFC
查看>>
CentOS 6.5下 mysql用户root登录不了
查看>>
windows + tomcat 部署web服务 http 改为https访问方法
查看>>
Windows系统下Apache 服务器启动以及过程中产生问题的解决办法
查看>>
Oracle服务说明
查看>>
异常收集(三):Missing artifact com.oracle:ojdbc6:jar:1.0 两种解决方案
查看>>