Java資料結構學習DAY3——連結串列練習(1)
阿新 • • 發佈:2021-02-03
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.查詢連結串列是否存在某個元素