Всем привет и добро пожаловать в наш блог. Сегодня мы собираемся обсудить и узнать, как написать новый метод для связанного списка. Как всегда, хочу обратить внимание на предыдущие блоги. Рекомендую начать с них.
Ссылка на предыдущий пост в блоге:
Получить последний элемент в списке
Функция → «getLast ()»
Направления
Возвращает узел связанного списка.
Пример
const list = new LinkedList(); list.insertFirst(‘a’) list.insertFirst(‘b’) list.getLast(); //returns node with data ‘a’
Прежде всего, нам нужно проверить, есть ли какой-либо элемент, если нет, мы просто возвращаем null. Затем мы создаем узел переменной, в котором указываем на голову (первый элемент). Мы создаем цикл while для перемещения до последнего элемента. Если следующий элемент равен нулю, мы возвращаем узел.
Мы используем пример, которым я поделился с вами выше.
class Node { constructor(data, next = null) { this.data = data; this.next = next; } } class LinkedList { constructor() { this.head = null; } insertFirst(data) { const node = new Node(data, this.head); this.head = node; } size() { let counter = 0; let node = this.head; while (node) { counter++; node = node.next; } return counter; } getFirst() { return this.head.data; } getLast() { if (!this.head) { return null; } let node = this.head; while (node) { if (!node.next) { return node; } node = node.next; } } } const list = new LinkedList(); list.insertFirst(“a”); list.insertFirst(“b”); console.log(list.getLast()); //returns ‘b’
Очистить список
Функция → «clear ()»
Направления
Очищает связанный список от всех узлов
Пример
const list = new LinkedList(); list.insertFirst(‘a’); list.insertFirst(‘b’); list.clear(); list.size();// returns 0
Вы, наверное, думали о чём-то безумном, но, честно говоря, это очень просто. Вам просто нужно присвоить head нулевое значение.
class Node { constructor(data, next = null) { this.data = data; this.next = next; } } class LinkedList { constructor() { this.head = null; } insertFirst(data) { const node = new Node(data, this.head); this.head = node; } size() { let counter = 0; let node = this.head; while (node) { counter++; node = node.next; } return counter; } getFirst() { return this.head.data; } getLast() { if (!this.head) { return null; } let node = this.head; while (node) { if (!node.next) { return node; } node = node.next; } } clear() { this.head = null; } } const list = new LinkedList(); //Added two elements list.insertFirst("a"); list.insertFirst("b"); console.log("Size of the list after adding two elements " + list.size()); //Clear the list console.log(""); list.clear(); console.log("After clearing the list " + list.size()); console.log("");
Спасибо, что прочитали, надеюсь, вам было полезно, увидимся в следующий раз.