iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
Software Development

One Punch 一拳搞定前後端面試系列 第 17

[One Punch 一拳搞定前後端面試] DAY-17 - LinkedList size() 與 getFirst()

  • 分享至 

  • xImage
  •  

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。

請見最後 size() 方法。

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
}

明天我們會繼續 LinkedList 之旅...

好讀整理版同步發行~

本文同時發布於好讀整理版


上一篇
[One Punch 一拳搞定前後端面試] DAY-16 - LinkedList 建構子與 addFirst
下一篇
[One Punch 一拳搞定前後端面試] DAY-18 - LinkedList getLast() 與 clear()
系列文
One Punch 一拳搞定前後端面試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言