連結串列--如何查詢單鏈表中倒數第k個元素
阿新 • • 發佈:2019-01-04
如何查詢單鏈表中倒數第k個元素
思路:因為是單鏈表,只能從頭至尾遍歷。可以設定兩個引用,其中一個引用比另外一個先前移k-1步,然後兩個引用同時開始移動,當先前移的那個引用到達連結串列尾的時候,即指向為NULL時,另一個引用指向的位置就是所要查詢的元素。
程式碼實現:
public static Node findElem(Node head,int k) {
if(k < 1) {
System.out.println("k不合法");
return null;
}
Node node1 = head;
Node node2 = head;
for (int i = 0;i < k-1 && node2 != null;i++) {
node2 = node2.next;
}
if(node2 == null) {
System.out.println("k不合法");
return null;
}
while(node2.next != null) {
node1 = node1.next;
node2 = node2.next;
}
return node1;
}
Node類:
class Node{
int data;
Node next = null;
public Node(int data) {
this.data = data;
}
}