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

xiaoxiao2021-03-01  19

 

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


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

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

进阶:

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

 

建立两个链表,l1先从第一个节点访问到第n个节点,然后l1和l2同时进行扫描,当l1扫描到链表尾时,l2到倒数第n个节点。

# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def removeNthFromEnd(self, head, n): """ :type head: ListNode :type n: int :rtype: ListNode """ res = ListNode(0) res.next = head l1 = res l2 = res for i in range(n): l1 = l1.next while l1.next: l1 = l1.next l2 = l2.next l2.next = l2.next.next return res.next

 

转载请注明原文地址: https://www.6miu.com/read-4149980.html

最新回复(0)