LeetCode值linkedlist -- Remove Nth Node From End of List

描述:给你一个链表,让你删除从尾节点起第n个节点


示例:

给你一个链表1->2->3->4->5, 并且 n = 2.

删除从尾节点起第2个节点4,结果得到链表1->2->3->4->5


分析:

设两个指针p,q,让p先走n步,然后p,q同时走,当p->next为空(p走到尾节点)时,删除q->next即可

class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        p = ListNode(None)
        p.next = head
        fast = slow = p
        for i in range(n):
            fast = fast.next
    
        while(fast.next):
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next
        return p.next


评论

Live Sex Cams Free