資料結構之鍊錶

2022-06-19 06:27:10 字數 2152 閱讀 7719

/**

* definition for singly-linked list.

* public class listnode

* }*/

移除鍊錶元素 

題目解析

用虛節點放在head前面,可以讓head的刪除不必單獨分析。

class

solution

else

}return

virhead.next;

}}

反轉鍊錶題目

解析

逆轉除了雙指標和遞迴,還可以用棧(單純列印逆轉資料)。

class

solution

return

pre;

}}

相交鍊錶  題目 

解析

看作a和b都要走完兩段路,如果有交點。因為總路程一樣,相遇後的路程一樣,所以相遇即相交。

如果a和b沒有交點,即後來都到達了null。

public

class

solution

return

prea;

}}

合併兩個有序鍊錶 題目

解析

迭代都會寫,遞迴一看就會一寫就廢

class

solution

else

}}

刪除排序鍊錶中的重複元素 題目

解析

class

solution

else

}return

head;

}}

刪除鍊錶的倒數第n個節點題目

解析

快慢指標找位置,虛頭節點刪除。

class

solution

while (r != null && r.next != null

) l.next =l.next.next;

return

prehead.next;

}}

兩兩交換鍊錶 題目

解析

雖然我是乙個只會用迭代的fw,但是我還是要把遞迴放上去。解析是遞迴(強烈建議看一看解析)。

class

solution

}

鍊錶求和 題目解析

class

solution

while (l2 != null

)

int count = 0;

listnode head = null

;

while (!stack1.isempty() || !stack2.isempty() || count != 0)

return

head;

}}

回文鍊錶 題目

分隔鍊錶 題目

奇偶鍊錶 題目

一開始用奇鍊錶當判斷條件,結果還要分情況考慮。既然偶煉表是加在後面的,迴圈時就根據偶煉表來判斷比較好哇。

class

solution

temphead.next =even;

return

head;

}}

旋轉鍊錶 題目 解析

構成乙個環,再跑。

class

solution

tail.next =head;

for (int i = 0; i < n - (k % n); i++)

tail.next = null

;

return

head;

}}

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...