寻找单链表倒数第k个节点
(牛客网—牛客题霸算法篇—NC69)
题目描述
输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
思路
Java实现
先循环遍历链表,记录链表长度len。
判断k与len的大小关系,如果k大,则返回长度为0的链表,否则返回倒数第k个节点。
代码实现
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public ListNode FindKthToTail (ListNode pHead, int k) {
// write code here
ListNode temp=pHead;
int len=0;
while(temp!=null){
len++;
temp=temp.next;
}
if(len<k){
return temp;
}
temp=pHead;
int i=0;
while(i!=len-k){
temp=temp.next;
i++;
}
return temp;
}
}