题目
输入一个链表,输出该链表中倒数第k个结点。
1、思路
使用双指针,在第一个指针走k-1次之后,第二个指针从第一个节点出发,当第一个指针到达最后一个节点时,第二个指针所指的就是倒数第k个节点。注意特殊情况即可。
2、代码
public class 倒数第k个节点 {
public ListNode FindKthToTail(ListNode head, int k) {
if (head == null || k == 0) {
return null;
}
ListNode l1 = head;
ListNode l2 = head;
int i = 1;
while (l1.next != null) {
if (i < k) {
l1 = l1.next;
} else {
l1 = l1.next;
l2 = l2.next;
}
i++;
}
return i < k ? null : l2;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
网友评论