LeetCode鍊錶相關問題總結

2021-09-26 01:54:06 字數 1093 閱讀 9376

獲取鍊錶的長度

兩種方法

listnode frist = head;

int length =0;

// 先獲得鍊錶的長度

while

(frist != null)

或者

listnode frist = head;

int length =1;

// 先獲得鍊錶的長度

while

(frist.next != null)

區別就是使用第二種方法,空鍊錶的時候會報空指標異常,第一種無妨,空鍊錶的話長度得出就是0

但是第二種方法最後的frist就是鍊錶的最後乙個結點,而第一種方法最後的frist為null

所以他們各有利弊,選擇使用即可

在鍊錶的最後拼接上該鍊錶

例:

原鍊錶:1

->2-

>3-

>4-

>

5之後:1

->2-

>3-

>4-

>5-

>1-

>2-

>3-

>4-

>

5

listnode frist = head;

while

(frist.next != null)

frist.next = head;

也就是遍歷找到鍊錶最後乙個結點,然後讓最後那個結點的next指向頭結點即可

查詢指定位置的結點

我們都知道鍊錶在記憶體中儲存是不連續的單元,與陣列不一樣,查詢的話,需要遍歷整個鍊錶

// 這段**實現根據索引獲取到指定鍊錶結點(索引從0開始,也就是頭結點是0)

for(

int i =

0; i < index; i++

)

node.next=before.next.next

暫且這麼多,遇到新的再補充

leetcode鍊錶相關經典習題

141.給定乙個鍊錶,判斷鍊錶中是否有環。public class solution listnode fast head listnode slow head while fast null fast.next null return false 142.給定乙個鍊錶,返回鍊錶中第乙個入環的節點,...

LeetCode 鍊錶相關 重新理解

劍指 offer 24 反轉鍊錶 92774.3 簡單之前用python做過了,但理解的不透徹,重新用js再做一下。個人理解 指標指向 乙個值,表示指標裡存放的是這個值的位址,即箭頭末尾是箭頭方向的位址,所以兩個指標相等,表示位址相同,即是同乙個節點 首先,node.next 相當於鍊錶結構中的左 ...

LeetCode 鍊錶相關題目總結

之前已經對鍊錶相關常用操作進行了總結。在這裡,對 leetcode 與鍊錶相關的題目解答思路進行總結。1.兩個鍊錶,求是否有相交的節點並返回 方案一 將兩個鍊錶的各節點依次存入兩個物件中,然後雙層迴圈查詢是否存在有相同的節點 方案二 先求出兩個鍊錶各自長度,將長鍊錶先向尾部移動至和短鍊錶同樣長度的位...