输入一个链表,输出该链表中倒数第k个结点。

//正常思路,先统计下改链表有多长,而后遍历链表到长度-kcode

public class Solution {io

public ListNode FindKthToTail(ListNode head,int k) {

    int a=0;
	
    ListNode temp=head,temp1=null;
	
    while(temp!=null)
	
  { 
  
    temp =temp.next;
	
    a++;
	
  }
  
    if(a<k)
        return null;
 for(int i=0;i<a-k;i++){
   
     head=head.next;
     
 }
    return head;
}

}class

//大佬的思路,先作个长度为k的尺子,当尺子移动到末端时,尺子左边就是要找的倒数第k个节点 public ListNode FindKthToTail(ListNode head,int k) {List

ListNode p=head;
	//找到顺数的第k个节点
    for(int i=0;i<k;i++)
	
    {
	
      if(p==null)
	  
          return null;
		  
       p=p.next;
	   
    }
	

ListNode q=head;
//循环顺数第k个节点后面是否有节点,有则移动,无则说明q就是倒数第k个节点
while(p!=null){
 
    q=q.next;
	
    p=p.next;
	
    
}

return q;

}

}循环

相关文章
相关标签/搜索