链表中倒数第K个节点
题目描述
输入一个链表,输出该链表中倒数第k个节点。
解题思路
该题比较简单,只需要设置两个指针,开始指向头节点,让一个节点先走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(k<=0) return null;
ListNode p1 = head;
ListNode p2 = head;
//p2向前移动k个节点
for(int i=0;i<k-1;i++) {
if(p2==null) return null;
p2 = p2.next;
}
if(p2==null) return null;
while(p2.next!=null) {
p1=p1.next;
p2=p2.next;
}
return p1;
}
}