Всем привет и добро пожаловать в наш блог. Сегодня мы собираемся обсудить и узнать, как написать новый метод для связанного списка. Как всегда, хочу обратить внимание на предыдущие блоги. Рекомендую начать с них.

Ссылка на предыдущий пост в блоге:



Получить последний элемент в списке

Функция → «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("");

Спасибо, что прочитали, надеюсь, вам было полезно, увидимся в следующий раз.