描述
输入一个链表,输出该链表中倒数第k个结点。
如果该链表长度小于k,请返回空。
示例1
输入:
{1,2,3,4,5},1
复制返回值:
{5}
public class Jz14_FindKthToTail {
@Test
public void test() {
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
ListNode listNode4 = new ListNode(4);
ListNode listNode5 = new ListNode(5);
listNode1.next = listNode2;
listNode2.next = listNode3;
listNode3.next = listNode4;
listNode4.next = listNode5;
ListNode listNode = FindKthToTail(listNode1, 3);
System.out.println(listNode.val);
}
public ListNode FindKthToTail(ListNode pHead, int k) {
ListNode preNode = pHead;
ListNode ans = null;
while (k > 0 && null != preNode) {
preNode = preNode.next;
k--;
}
if (k > 0) {
return ans;
}
ans = pHead;
while (null != preNode) {
ans = ans.next;
preNode = preNode.next;
}
return ans;
}
public class ListNode {
int val;
ListNode next = null;
public ListNode(int val) {
this.val = val;
}
}
}