單鏈表的反轉
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 這裡進行對指標的改變指向,再進行覆蓋內容即可。...