class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 這道題還是很簡單的,我們只需要兩遍的遍歷,找到鏈表中倒數第n的前一個,
# 然后把n的前一個節點的next指向n的下一個節點,就可以了,
# 這里需要注意的是,如果鏈表的長度為1,我們好辦了,
# 因此這里我們定義一個鏈表的節點,然后讓他指向頭結點,
# 這樣我們就能實作洗掉第一個節點了,
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
# 判斷鏈表是否為空,根據題意,這個判斷可以不寫,
# 因為題中說明了n是有效的數字
if not head :return None
# 定義一個節點,然后把它指向頭結點,
node = ListNode(0)
node.next = head
length = 0
# 遍歷出鏈表的長度,
while head:
length += 1
head = head.next
# 找到倒數第n各節點前邊那個,
node1 = node
for i in range(length - n):
node1 = node1.next
# 然后把n洗掉,
node1.next = node1.next.next
return node.next
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/178579.html
標籤:其他
上一篇:19。洗掉鏈表倒數第N個節點
