题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param pHead ListNode类 # @param k int整型 # @return ListNode类 #总体思路是利用栈来存放元素的节点,然后往外pop k-1个元素, #第K次pop的值赋值给pHead,然后返回PHead class Solution: def FindKthToTail(self , pHead: ListNode, k: int) -> ListNode: # write code here stack = [] if not pHead: #pHead=None return pHead if k==0: return None while pHead != None: #这里stack种添加的是pHead节点,而不是val stack.append(pHead) pHead = pHead.next #情况1:栈中的元素数量大于k if len(stack)>=k: while k !=1: stack.pop() k-=1 pHead = stack.pop() return pHead #情况2:栈中的元素数量等于k,或者栈中的元素数量xiaoyu k #elif len(stack)==k : # stack # return pHead elif len(stack)<k: #res = ListNode(null) return None 备注: