資料結構之單鏈表(二)面試題

2021-10-21 18:01:26 字數 888 閱讀 1379

單鏈表的反轉

singlelinkedlistnode prev = head.next;

singlelinkedlistnode pcur = prev.next;

while

(prev.next != null)

pcur是要操作的節點,prev是其前置節點,初始為prev為第乙個有效節點,pcur為第二個有效節點

每次操作的關鍵在於將前置節點prev指向其後置節點,操作節點指向頭結點的後置節點,頭結點指向要操作的節點,如圖所示

cur是要操作的節點,關鍵在於新建乙個頭結點,將原鍊錶的每乙個節點一次插入到這個新建頭結點之後。

先用next暫時儲存cur的下個節點,然後將cur指向新建頭結點的後置節點,將新建頭結點的後置指向當前操作節點,然後將操作節點指向下乙個節點,如此迴圈。最後將原鍊錶的頭結點指向新建頭結點的後置節點即可。

資料結構(七) 單鏈表面試題 二

單鏈表的翻轉 思路 定義節點reversehead new heronode 遍歷鍊錶,遍歷乙個就放入最前端,放入新的鍊錶 head.next reversehead.next public static void reverselist heronode head if head.next nul...

資料結構 單鏈表基礎面試題 上

1 單鏈表的逆置 node reverse node s1 2 移除鍊錶的元素 輸入 1 2 6 3 4 5 6 val 6 輸出 1 2 3 4 5 node removeelements node head,int val else free cur cur next prev cur cur ...

資料結構之單鏈表常見面試題(一)

逆序列印單鏈表這裡用的是遞迴的列印方法。void linklistreverse linknode head if head next null linklistreverse head next printf c p n head data,head 這裡進行對指標的改變指向,再進行覆蓋內容即可。...