Leetcode——删除链表的倒数第N个节点
Posted Yawn,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——删除链表的倒数第N个节点相关的知识,希望对你有一定的参考价值。
1. 题目
2. 题解
双指针遍历即可
/**
* 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) {
ListNode slow = head;
ListNode fast = head;
for(int i = 0; i < n; i++){ //倒数第几个是从1开始算(倒数第二,其实就是前一个),而i是从0开始计数
fast = fast.next;
}
if(fast == null)
return head.next; //倒数n个的前一个正好是head节点
while(fast.next != null){
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return head;
}
}
以上是关于Leetcode——删除链表的倒数第N个节点的主要内容,如果未能解决你的问题,请参考以下文章