題目描述
輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結點。(網(wǎng)易游戲面試題,難度:easy)
分析:用兩個指針p1,p2. p1先往前走k步,然后p1,p2同時向后走知道p1指向null
一開始寫程序判定跳出條件是p1指向末尾節(jié)點,其實p1應該指向null才是結束。注意一些邊界條件
/*
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) {
return head;
}
int len = 1;
ListNode Head = new ListNode(-1);
Head.next = head;
while (head.next != null) {
len++;
head = head.next;
}
if (k > len) {
return null;
}
ListNode p1 = Head,p2 = Head;
while (k>0) {
--k;
p1 = p1.next;
}
while (p1 != null) {
p1 = p1.next;
p2 = p2.next;
}
return p2;
}
}