查找链表中倒数第k个节点
链表中倒数第k个结点
http://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a
基于python,感觉代码过于冗余,条件判断和while太多,求大佬帮忙优化一下,感谢!
class Solution:
def FindKthToTail(self, head, k):
# write code here
# 查看是否为空链表; 查看k值,若k为0,输出none
if not head or k <= 0:
return None
else:
p = head
res = head
right = 1
left = 1
# 首先将左右指针拉开k-1长度,如果链表长度小于k,则终止while循环
while right - left < k - 1 and p.next:
p = p.next
right += 1
# 查看循环终止是否因为链表长度不够
if right - left < k - 1:
return p.next
# 链表长度满足,则同时移动左右两个指针,直到右指针到头
else:
while p.next:
p = p.next
res = res.next
return res
