1. 程式人生 > 其它 >Java資料結構學習DAY3——連結串列練習(1)

Java資料結構學習DAY3——連結串列練習(1)

技術標籤:Java資料結構連結串列資料結構java

Java資料結構學習DAY3——連結串列練習

已知一條連結串列,不知道其長度的情況下:通過遍歷,列印連結串列的每個元素。通過遍歷,找到連結串列的最後一個結點。通過遍歷,找到連結串列的倒數第二個結點。通過遍歷,找到連結串列的第 n 個結點。(連結串列的長度 >= n)通過遍歷,計算連結串列中元素的個數。通過遍歷,找到連結串列中是否包含某個元素。

  • 程式碼

Main類

package Java41_0202;

public class Main {

    //通過這個方法創建出一個固定內容的連結串列
    //用頭結點代替整個連結串列
    //讓方法把頭結點返回去
public static Node creatList() { Node a = new Node(1); Node b = new Node(2); Node c = new Node(3); Node d = new Node(4); a.next = b; b.next = c; c.next = d; d.next = null; return a; } public static void main(String[
] args) { Node head = creatList(); //1.連結串列遍歷 // for (Node cur = head; cur != null; cur = cur.next) { // System.out.println(cur.val); // } //2.遍歷連結串列,並找到最後一個節點 // Node cur = head; // while(cur != null && cur.next != null) { // cur = cur.next;
// } // //此時迴圈結束,則 cur 指向了最後一個節點 // System.out.println(cur.val); // } //3.遍歷連結串列,並找到倒數第二個節點 //特點是它的 .next.next 為 null // Node cur = head; // while (cur != null && cur.next != null && cur.next.next != null) { // cur = cur.next; // } // System.out.println(cur.val); //4. 取連結串列的第 N 個節點(從 1 開始算的) // int N = 3; // Node cur = head; // for(int i = 1; i < N; i++) { // cur = cur.next; // } // //此時 cur 指向的元素,就是正數第 N 個元素 // System.out.println(cur.val); //5.獲取連結串列的長度 //每次遍歷一個元素就 count++ 一次 int count = 0; for (Node cur = head; cur != null; cur = cur.next) { count++; } System.out.println(count); //6.查詢連結串列是否存在某個元素 // int toFind = 3; // Node cur = head; // for (; cur != null; cur = cur.next) { // if (cur.val == toFind) { // break; // } // } // if (cur != null) { // System.out.println("找到了"); // } else { // System.out.println("沒找到"); // } } }

Node 類

package Java41_0202;

//使用 Node 表示節點
public class Node {
    public int val;
    public Node next = null;

    public Node(int val) {
        this.val = val;

    }

}
  • 結果

1.連結串列遍歷
在這裡插入圖片描述
2.遍歷連結串列,並找到最後一個節點
在這裡插入圖片描述
3.遍歷連結串列,並找到倒數第二個節點
在這裡插入圖片描述
4.取連結串列的第 N 個節點(從 1 開始算的)
在這裡插入圖片描述
5.獲取連結串列的長度
在這裡插入圖片描述
6.查詢連結串列是否存在某個元素
在這裡插入圖片描述