這一題應(yīng)該是劍指offer上的结洼,用兩個(gè)指針,新建一個(gè)新的結(jié)點(diǎn)指向head,p1,p2分別指向dumy,先讓p2移動(dòng)n 步,然后p1 p2一起移動(dòng)到尾部巩步,這樣p1指向的位置是需要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn),代碼如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @return a ListNode
def removeNthFromEnd(self, head, n):
dummy=ListNode(0); dummy.next=head
p1=p2=dummy
for i in range(n): p1=p1.next
while p1.next:
p1=p1.next; p2=p2.next
p2.next=p2.next.next
return dummy.next