算法-目录
题目来源: 19. 删除链表的倒数第 N 个结点
双指针
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
dummy=ListNode(0,head)
cur=head
pre=dummy
for i in range(n):
cur=cur.next
while cur:
cur=cur.next
pre=pre.next
pre.next=pre.next.next
return dummy.next
计算链表长度
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
def len(head):
len=0
while head:
len+=1
head=head.next
return len
dummy=ListNode(0,head)
l=len(head)
cur=dummy
for i in range(1,l-n+1):
cur=cur.next
cur.next=cur.next.next
return dummy.next