剑指Offer22:链表中倒数第k个节点
题目:输入一个链表,输出倒数第k个元素,符合大多数人的习惯,最后一个节点,就表示最后一个。
思路:让第一个节点走k-1步,再让第二个节点开始走,这样第一个节点指向最后一个节点的时候,第二个节点就指向,倒数第k个节点。但是,我这里强调一下写代码的健壮性,就是你的代码得应对一下不可预料的情况,你得对错误或者不符合的情况进行排除。
代码:
class ListNode{
int value;
ListNode next;
public ListNode(int value){
this.value = value;
}
}
ListNode FindKthToTail(ListNode pListNode,int k){
if(pListNode==null|| k==0){
return null;
}
ListNode Head = pListNode;
ListNode Last = null;
for(int i=0;i<k-1;i++){
if(Head.next!=null){
Head = Head.next;
}else{
return null;
}
}
Last = pListNode;
while(Head.next!=null){
Head = Head.next;
Last = Last.next;
}
return Last;
}
还没有评论,来说两句吧...