LeetCode:求链表中倒数第k个节点(Python)
程序员文章站
2023-12-21 20:12:40
...
题目描述:
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。
解题思路:
**解法一:**先遍历统计链表长度,记为 n ;
设置一个指针走 (n-k)步,即可找到链表倒数第 k 个节点。
解法一代码:
if __name__=='__main__':
Linklist=list(map(int,input().strip().split()));
k=int(input())
print(Linklist[len(Linklist)-k])
解法二:使用双指针
解法二代码:
def getKth(arr,k):
former=k
latter=0
#因为这里的本意是使用双指针,所有不能用数组的长度来终止循环,所以用了异常抛出
while 1:
former += 1
latter += 1
try:
arr[former]
except IndexError:
return arr[latter]
if __name__=='__main__':
Linklist=list(map(int,input().strip().split()));
k=int(input())
print(getKth(Linklist,k))