單鏈表反轉

2021-09-09 06:58:30 字數 804 閱讀 3057

有如下鍊錶

反轉之後

解題思路:

1)煉表頭節點保持不動,第乙個節點要變成鍊錶的最後乙個節點;

2)著重分析第乙個節點,在 1 節點的指標域設為null 的時候,

先儲存 1節點的next 節點

,然後用 priornode節點指                        向 1 節點,這樣在遍歷到2節點的時候,2節點的指標域就可以指向 priornode 也就是 1 節點,以此類推

public listnode reverselistnode(listnode head) 

head.setnext(priornode);

return head;

}

資料結構

/**

* 單鏈表

*/public class listnode

public int getval()

public void setval(int val)

public listnode getnext()

public void setnext(listnode next)

}

單鏈表反轉

單鏈表反轉,可以用迴圈做,當然也可以遞迴 詳見 include includestruct node 3 1 4 6 2 1 1 3 4 6 2 2 4 1 3 6 2 3 6 4 1 3 2 4 2 6 4 1 3 5 迴圈反轉,即依次改動3個指標值,直到鍊錶反轉完成 比如,上面第 1 行到第 2...

反轉單鏈表

include stdafx.h include include using namespace std struct listnode typedef listnode plistnode typedef plistnode list list creatlist return head void...

單鏈表反轉

想起很早以前某次面試,面試官很嚴肅的要求我現場手寫單鏈表反轉的 哥虎軀一震,心想 不就需要要個臨時變數來記錄位址嗎,用得著這樣煞有介事?雖然在那之前我的確沒寫過這個程式,哈哈哈 當時我草草寫了十來行 面試官不等我完成,就直接拿過去開始問問題。不知道是不是因為抗壓能力不足,在面試官的不斷 盤問 下,哥...