久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>數據結構之鏈表操作大集合(技術連載數據結構)

數據結構之鏈表操作大集合(技術連載數據結構)

發布時間:2024-01-24閱讀(14)

導讀鏈表反轉此題屬于中低難度的題,思路并不復雜,單其中有很多易錯點,比如空指針判斷、指針丟失等;思路:設置三個指針pre、cur、next,初始時刻pre=nu....鏈表反轉

此題屬于中低難度的題,思路并不復雜,單其中有很多易錯點,比如空指針判斷、指針丟失等;

思路:設置三個指針pre、cur、next,初始時刻pre = null,cur = head;

開始處理,首先執行next = cur.next,防止后面cur.next修改之后指針丟失;

數據結構之鏈表操作大集合(技術連載數據結構)(1)

鏈表反轉

環形鏈表檢測并返回入環點

這個題目技巧性很強,一般不太容易想到;大體思路如下:

首先設置快慢指針,每一次移動,快指針移動兩步(尤其需要注意第二步判斷空指針),慢指針移動移步;然后判斷兩個指針是否指向同一位置。

如果最終快指針遇見null,則無環;如果快慢指針指向了同一位置,則有環;

如果有環的化,兩指針相遇時,快指針移動到head位置,并且變為慢指針(每次移動一步);然后兩個指針再次開始移動,直到再次相遇即為入環點。(證明略)

數據結構之鏈表操作大集合(技術連載數據結構)(2)

環形鏈表檢測

鏈表歸并排序

二路歸并排序:假設兩個有序數組,設置兩個指針,指向0位置,將指向比較小元素的指針對應的元素存入數組,并移動指針;直到兩個指針移動完畢;

歸并排序思路:歸并排序是建立在二路歸并排序基礎之上,將數組逐漸分解,直到僅有一個元素,然后進行二路歸并排序。(先分后合的思想)

偽代碼如下:

public int[] merge(int[] nums,int start, int end){

if(start == end){

return new int[]{nums[start]};

}

int mid = (start end) / 2;

int[] s1 = merge(nums, start,mid);

int[] s2 = merge(nums,mid 1, end);

return binMerge(s1,s2);

}

鏈表歸并排序比數組歸并排序難度有所增加,但思路是一致的,仍然是逐步分解,直到只有一個結點,然后再合并。

主要區別在于中點的選取,關于中點選取,這里也有現成的思路,通過快慢指針,當快指針走到終點時,慢指針即為中點。

具體實現如下:

數據結構之鏈表操作大集合(技術連載數據結構)(3)

連載系列:

技術連載:開篇詞

技術連載:連載提綱設計思路

技術連載:數據結構 - 數組

技術連載:數據結構 - 數組常見面試題匯總

技術連載:數據結構 - 鏈表

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖