題目:輸入一個(gè)鏈表懊渡,輸出該鏈表中倒數(shù)第 k 個(gè)結(jié)點(diǎn)冠句。
思路:使用兩個(gè)指針left,right都指向鏈表的頭部head织咧,然后right向后先走k-1步胀葱,接著left、right同時(shí)向后走直到right走到頭笙蒙,此時(shí)left就是鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)
Python代碼如下:
class listNode(object):
def __init__(self, val):
self.val = val
self.next = None
class Solution(object):
def FindKthToTail(self, head, k):
left = head
right = head
if (not head) or (k<=0):
return None
else:
for i in range(k-1):
if not right.next:
return None
else:
right = right.next
while right.next:
right = right.next
left = left.next
return left
s = Solution()
l1 = listNode('1')
l2 = listNode('2')
l3 = listNode('3')
l4 = listNode('4')
l1.next = l2
l2.next = l3
l3.next = l4
print s.FindKthToTail(l1, 2).val # 3