輸入一個鏈表,輸出該鏈表中倒數第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;

}

}循環

相關文章
相關標籤/搜索