Skip to main content

LinkedList size() & getFirst()

這篇要來介紹 LinkedList 裡面重要的方法 size()getFirst()

也就是 :

  1. 取得 LinkedList 的長度(integer): size()
  2. 取得 LinkedList 第一個元素: getFirst()

註: 本篇 Java 直接用 LinkedList 物件內建的 size(), getFirst(),就好,所以不再贅述。

LinkedList size()

取得 LinkedList 的長度(integer): size()

JavaScript 實作

先看看想要的效果:

const mylist = new Linkedlist();
mylist.addFirst("Tom");
mylist.addFirst("Mary");
mylist.addFirst("Jack");

mylist.size(); // should return 3

實作,把前幾篇 LinkedList 寫好的結構先帶進來,再來寫我們的 size()

用 while loop,有值就 + 1,然後換下一個。直到最後 null。

class Node {
constructor(data, next = null) {
this.data = data;
this.next = next;
}
}

class LinkedList {
constructor() {
this.head = null;
}

addFirst(data) {
this.head = new Node(data, this.head);
}

size() {
let count = 0;
let node = this.head;

while (node) {
count = count + 1;
node = node.next;
}

return count;
}
}
筆記一下

注意這邊用到的 while loop 寫法,在其他地方也是常常用到的, 尤其在: 「有就 + 1,然後換下一個,直到沒東西」 這種情況。

LinkedList getFirst()

取得 LinkedList 第一個元素: getFirst()

JavaScript 實作

這邊不用想太多,在 class LinkedList 內增加

getFirst(){
return this.head
}

進行測試

const list = new LinkedList();
list.addFirst("apple");
list.addFirst("book");
list.addFirst("cat");

console.log(list.size()); // 3
console.log("getFirst: " + list.head.data); // cat

本文同時發布於鐵人賽