[leetcode] 19. Remove Nth Node From End of List python实现【easy】

来源:互联网 发布:数据完整性保护 编辑:程序博客网 时间:2024/06/06 03:21
  1. Remove Nth Node From End of List My Submissions QuestionEditorial Solution

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

For 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.
Try to do this in one pass.

意思是说给你一个单链表, 然后让你删掉从后往前的第n个,比如这个1>2>3>4>5,删掉倒数第二个就变成了1>2>3>5.
而且有要求,最好跑一次。。
那想法就是记录一下呗,每次跑的时候都记一下它前第n个位置那个节点。如果当前节点变成了空(也就是到了结尾),则删掉对应的记录的那个节点(前第n个节点)。

双指针的意思

# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def removeNthFromEnd(self, head, n):        """        :type head: ListNode        :type n: int        :rtype: ListNode        """        if head == None:            return        p = q = head        r = None        i = 0        while q != None:            if i != n:                i +=1                q = q.next                continue            else:                r = p                p = p.next                q = q.next        if r ==None:            return head.next        r.next = p.next        return head
0 0
原创粉丝点击