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

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

DESC:

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

进阶:你能尝试使用一趟扫描实现吗?

 

示例 1:

输入:head = [1,2,3,4,5], n = 2

输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1

输出:[]

示例 3:

输入:head = [1,2], n = 1

输出:[1]

 

提示:

    链表中结点的数目为 sz

    1 <= sz <= 30
    0 <= Node.val <= 100
    1 <= n <= sz

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

CODE:

JAVA:

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode() {} *     ListNode(int val) { this.val = val; } *     ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution {    public ListNode removeNthFromEnd(ListNode head, int n) {        if (head == null) {            return null;        }        ListNode temp = new ListNode(0, head);        ListNode slow = temp;        ListNode fast = head;        while (n>0) {            //这里是防止n大于链表深度,题意已假设不存在,可省略            if (fast==null) {                return null;            }              fast = fast.next;            --n;        }        while (fast!=null) {            fast = fast.next;            slow = slow.next;        }        slow.next = slow.next.next;        return temp.next;    }}

 

NOTES:

  1. 快慢指针,快指针先走n步,然后快慢指针同步走,直到快指针到达尾部,此时慢指针正好走到倒数第n个节点,但是此时删除该节点不好处理,好的时机是走到该节点前一个节点,方便删除,所以我们为慢指针在头部插入一个虚节点,让慢指针从这里往下走;
  2. 注意记录慢指针头部,且最后要注意返回假头部节点的next;
你可能感兴趣的文章
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.147 - LeetCode1108
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql truncate (清除表数据)
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
YUV420只绘制Y通道
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>