Свързани публикации 'linked-lists'
LeetCode 2095- Изтриване на средния възел на свързан списък
„Въпрос“:
Получавате head от свързан списък. Изтрийте средния възел и върнете head от модифицирания свързан списък .
Средният възел на свързан списък с размер n е ⌊n / 2⌋th възелът от началото , използвайки 0-базирано индексиране , където ⌊x⌋ означава най-голямото цяло число по-малко или равно на x .
За n = 1 , 2 , 3 , 4 и 5 средните възли са съответно 0 , 1 , 1 , 2 и.
Пример 1:
Input: head = [1,3,4,7,1,2,6]
Output:..
[Структури на данни] — Свързани списъци
Свързаният списък е структура от данни, която се състои от последователност от възли, която съдържа стойност и препратка (връзка) към следващия възел.
Big-O нотация
access: O(n)
search: O(n)
insert: O(1)
delete: O(1)
Достъпът и търсенето са доста бавни, тъй като възлите са свързани един по един, различно от масиви, където има индекси или хеш таблици, където има ключове.
Вмъкването и изтриването са бързи, както се случва в началото или в края.
Единично срещу двойно свързан списък..
LeetCode 328- Четен и нечетен свързан списък
„Въпрос“:
Като се има предвид head на единично свързан списък, групирайте всички възли с нечетни индекси заедно, следвани от възлите с четни индекси, и върнете пренаредения списък .
Първият възел се счита за нечетен , а вторият възел е четен и т.н.
Имайте предвид, че относителният ред както в четните, така и в нечетните групи трябва да остане такъв, какъвто беше във входа.
Трябва да решите проблема с O(1) допълнителна пространствена сложност и O(n) времева сложност...
JavaScript: Вмъкване на възел в началото на свързан списък
Обяснено решение на проблем с HackerRank
За днешния алгоритъм ще вмъкнем възел в началото на единично свързан списък. Ето предизвикателството, което избрах от HackerRank :
При даден указател към главата на свързан списък, вмъкнете нов възел преди главата. Следващата стойност в новия възел трябва да сочи към head и стойността data трябва да бъде заменена с дадена стойност. Върнете препратка към новата глава на списъка. Даденият начален указател може да е нула, което..
Преобразувайте листата на двоично дърво в двойно свързан списък
При дадено двоично дърво и препратка към коренния възел на дървото, трансформирайте листовите възли на дървото в двойно свързан списък в последователност по ред.
Този проблем може да бъде разделен на части — Намерете листовите възли на двоично дърво и даден набор от елементи, формирайте двойно свързан списък, като ги използвате.
Намерете листовите възли на двоично дърво -
За да обходим двоично дърво, можем да обходим дървото с помощта на алгоритми за обхождане в предварителна поръчка,..
Въведение в свързаните списъци в Java: Ръководство за начинаещи
Въведение
Свързаните списъци са основна структура от данни в компютърното програмиране, която предлага динамичен и ефективен начин за обработка на данни. В това ръководство за начинаещи ще проучим основите на свързаните списъци в Java, включително предимствата им, как да ги внедрим и някои общи операции. До края на тази статия ще имате солидно разбиране за свързаните списъци и как да ги използвате във вашите Java проекти.
Какво е свързан списък?
Дефиниция на свързан списък..
Стекове върху стекове върху стекове срещу Опашки върху опашки върху опашки
Масиви
Масивът е списък от данни, съхранявани в непрекъсната памет. Основното предимство на масива е, че достъпът до определен елемент в списъка може да се извърши с време на изпълнение O(1). Основният недостатък при използването на масиви биха били вмъкванията и изтриванията. За да направите едно от двете, масивите трябва да се преместят върху всички останали елементи, за да направят място за новия.
Свързани списъци
Свързаният списък е набор от данни, представени с възли, които..