1.题目描述
输入一个链表,输出该链表中倒数第k个结点。
2.算法描述
1.先看链表有多少个结点,比如n。
2.如果k>n,则不存在这样的结点,返回空;反之返回顺数第n-k+1个结点。
3.代码描述
3.1.Java代码
/*
public class ListNode{
int val;
ListNode next = null;
public ListNode(val){
this.val = val;
}
}
*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
int n = 0;
ListNode p = head;
while(p != null){
p = p.next;
len++;
}
p = head;
if(n - k < 0)
return null;
for(int i=1;i<=n-k;i++)
p = p.next;
return p;
}
}
3.2.Python代码
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
n = 0
p = head
while p:
p = p.next
n += 1
if n-k<0:
return None
p = head
for i in range(n-k):
p = p.next
return p