1. 程式人生 > >連結串列--如何查詢單鏈表中倒數第k個元素

連結串列--如何查詢單鏈表中倒數第k個元素

如何查詢單鏈表中倒數第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;
    }

}