剑指offer:链表中倒数第k个结点

题目描述

输入一个链表,输出该链表中倒数第k个结点

解题思路

两个指针,第一个指针和第二个指针都指向头结点,然后先让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了

/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head == null || k <= 0)
return null;
ListNode first = head;
ListNode ret = head;
while(k>1){
if (first.next != null)
first = first.next;
else
return null;
k--;
}
while(first.next!=null){
first = first.next;
ret = ret.next;
}
return ret;
}
}
posted @ 2018-01-10 08:37  小丑进场  阅读(132)  评论(0)    收藏  举报