LinkedList size() & getFirst()
這篇要來介紹 LinkedList 裡面重要的方法 size()
與 getFirst()
,
也就是 :
- 取得 LinkedList 的長度(integer):
size()
- 取得 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
本文同時發布於鐵人賽