[leetcode]19.删除链表的倒数第N个节点
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                [leetcode]19.删除链表的倒数第N个节点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                給你一個鏈表,刪除鏈表的倒數第?n?個結點,并且返回鏈表的頭結點。
進階:你能嘗試使用一趟掃描實現嗎?
示例 1:
輸入:head = [1,2,3,4,5], n = 2 輸出:[1,2,3,5]示例 2:
輸入:head = [1], n = 1 輸出:[]示例 3:
輸入:head = [1,2], n = 1 輸出:[1]提示:
- 鏈表中結點的數目為?sz
- 1 <= sz <= 30
- 0 <= Node.val <= 100
- 1 <= n <= sz
思路:求出鏈表的長度,刪除倒數第N個節點
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next # class Solution: # def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: # dummy = ListNode(0, head) # first = head # second = dummy # for i in range(n): # first = first.next# while first: # first = first.next # second = second.next# second.next = second.next.next # return dummy.nextclass Solution:# def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:# def getLength(head: ListNode) -> int:# length = 0# while head:# length += 1# head = head.next# return length# dummy = ListNode(0, head)# length = getLength(head)# cur = dummy# for i in range(1, length - n + 1):# cur = cur.next# cur.next = cur.next.next# return dummy.nextdef removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:def getLength(head:ListNode)->int:length = 0while head:length+=1head = head.nextreturn lengthdummy = ListNode(0,head)length = getLength(head)cur = dummyfor i in range(1,length-n+1):cur = cur.nextcur.next = cur.next.nextreturn dummy.next?
總結
以上是生活随笔為你收集整理的[leetcode]19.删除链表的倒数第N个节点的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [leetcode]83.删除排序链表中
- 下一篇: [leetcode]617.合并二叉树
