您的位置:首页 > 职场人生

面试之路(27)-链表中倒数第K个结点

2016-05-09 21:01 381 查看

代码的鲁棒性:

所谓的鲁棒性是指能够判断输入是否合乎规范,能对不和规范的程序进行处理。

容错性是鲁棒性的一个重要体现。

防御性编程有助于提高鲁棒性。

切入正题,我可不是标题党:

链表倒数第k个节点

列表java类

public class ListNode{
int key;
ListNode next;
}


思路:

采用双指针的思路,初始化两个listNode,First和second。

first先走k-1步,然后两个一直往后遍历,直到First.next == null.

注意head为空和k 《= 0,以及k大于链条的长度。

代码:

public ListNode findKthToTail(ListNode head,int k){
if(head == null||k <= 0){
return null;
}
ListNode first = head;
ListNode second = null;
for(int i = 0;i < k-1;i++){
if(first.next != null){
first = first.next;
}else{
return null;
}
}
second = head;
while(first.next != null){
first = first.next;
second = second.next;
}
return second;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: