[LeetCode] 83. Remove Duplicates from Sorted List

xiaoxiao2025-10-07  23

题:https://leetcode.com/problems/remove-nth-node-from-end-of-list/description/

题目

Given a linked list, remove the n-th node from the end of list and return its head.

Example:

Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5.

Note:

Given n will always be valid.

题目大意

除去链表倒数第1个元素。

思路

双指针,设置 头结点,便于操作。

双循环, 先计算出 pfirst 指针的位置。然后 psecond 再跑。

class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode fNode = new ListNode(0); fNode.next = head; ListNode pfirst,psecond; pfirst = psecond = fNode; for(int i = 0 ; i<n && pfirst!=null;i++) pfirst = pfirst.next; while(pfirst.next!= null){ psecond = psecond.next; pfirst = pfirst.next; } psecond.next = psecond.next.next; return fNode.next; } }

一个循环计数

class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode fNode = new ListNode(0); fNode.next = head; ListNode pfirst,psecond; pfirst = psecond = fNode; int i = 0; while(pfirst.next!= null){ if(i==n) psecond = psecond.next; else i++; pfirst = pfirst.next; } psecond.next = psecond.next.next; return fNode.next; } }
转载请注明原文地址: https://www.6miu.com/read-5037505.html

最新回复(0)