您的位置:首页 > Web前端 > Node.js

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

2016-06-14 21:50 519 查看
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 = None

class 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode python