剑指offer(14)链表中倒数第k个节点
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
解题代码:
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function FindKthToTail(head, k)
{
// write code here
if(head == null || k <= 0){
return null;
}
//用两个指针指向头结点
var p1 = head,p2 = //中途如果p1的下一个节点为空,说明链表中不存在第k个结点,返回nullhead;
//如果p1的下一个结点不为空,将p1指向下一个结点,一直到p1指向第k个结点
//中途如果p1的下一个节点为空,说明链表中不存在第k个结点,返回null
for(var i = 1;i < k;i++){
if(p1.next == null){
return null;
}
p1 = p1.next;
}
//p1和p2一起向后指,当p1指向最后一个结点时,p2所指的即为第k个结点
while(p1.next != null){
p1 = p1.next;
p2 = p2.next;
}
return p2;
}