leetcode19-单链表

leetcode19-单链表

 

 leetcode19-单链表

 

 解题思路:

首先构造一个节点slownode,它的next引用给定链表的头结点的地址。

之后把slownode赋值给fastnode。

将fastnode往前移动n步,

再将fastnode和slownode一起往前移动,直到fastnode移到最后一个位置。

class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution(object):
    def removeNthFromEnd(self, head, n):
        if not head:
            return head
        slownode=ListNode(None)
        slownode.next=head
        fastnode=slownode
        for i in range(n):
            fastnode=fastnode.next
        while fastnode.next!=None:
            slownode=slownode.next
            fastnode=fastnode.next
        if slownode.next==head:
            head=head.next
        else:
            slownode.next=slownode.next.next
        return head

代码详解:

首先head=[1,2,3,4,5]

head这个变量引用的是链表头结点的地址。

leetcode19-单链表

上一篇:Photoshop照片合成 数码照片分身效果


下一篇:BUUCTF RE helloworld