IT公司100題-13-求鏈表中倒數第k個結點

問題描述:java

輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。鏈表倒數第0個節點爲NULL。spa

public static class Node{
   public int data;
   public Node next = null;
   public Node(int d, Node p){
      data = d;
      next = p;
   }
}

分析:code

方法1:orm

遞歸遞歸

private int nthToLastv1(Node p, int k){
   if(p.next == null)
      return 0;
   int i = nthToLastv1(p.next, k) + 1;
   if(k == i)
      System.out.println(p.data);
   return i;
}

方法2:it

非遞歸ast

private void nthToLastv2(int k){
   Node p1 = head.next;
   Node p2 = head.next;
   for (int i = 1; i < k; i++){
      p2 = p2.next;
   }

   while(p2.next != tail){
      p1 = p1.next;
      p2 = p2.next;
   }
   if(p1 != null) System.out.println(p1.data);
}
相關文章
相關標籤/搜索