Java語言實(shí)現(xiàn)反轉(zhuǎn)鏈表代碼示例
問題描述
定義一個(gè)函數(shù),輸入一個(gè)鏈表的頭結(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后的鏈表的頭結(jié)點(diǎn)。鏈表結(jié)點(diǎn)如下:
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }
思路1:
要想反轉(zhuǎn)鏈表,對(duì)于結(jié)點(diǎn)i,我們要把它的next指向它的前趨,因此我們需要保存前趨結(jié)點(diǎn),同時(shí),如果我們已經(jīng)把i的next重新賦值,會(huì)無法找到i的后繼,因此,在重新賦值之前,我們要保存i的后繼。
代碼:
public ListNode ReverseList(ListNode head) { if(head == null){ return null; } ListNode rHead = null; ListNode prior = null;//store prior ListNode q = head;//store current while(q != null){ ListNode next = q.next;//store the next if(next == null){ rHead = q; } q.next = prior; prior = q; q = next; } return rHead; }
思路2:
使用遞歸的思想(暫時(shí)沒有想到,因?yàn)槿绻眠f歸的話,每次應(yīng)該是:鏈表的第一個(gè)結(jié)點(diǎn)<—遞歸返回的鏈表的尾指針,但是這樣的話就無法獲得反轉(zhuǎn)后的頭指針了。)后面再思考吧。
總結(jié)
以上就是本文關(guān)于Java語言實(shí)現(xiàn)反轉(zhuǎn)鏈表代碼示例的全部內(nèi)容,感興趣的朋友可以參閱:Java編程刪除鏈表中重復(fù)的節(jié)點(diǎn)問題解決思路及源碼分享、Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例以及本站其他相關(guān)專題,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。
相關(guān)文章
ConcurrentHashMap線程安全及實(shí)現(xiàn)原理實(shí)例解析
這篇文章主要介紹了ConcurrentHashMap線程安全及實(shí)現(xiàn)原理實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11SpringBoot項(xiàng)目實(shí)現(xiàn)日志打印SQL的常用方法(包括SQL語句和參數(shù))
有時(shí)候遇到問題需要根據(jù)我們編寫的SQL進(jìn)行分析,但如果不進(jìn)行一些開發(fā)或者配置的話,這些SQL是不會(huì)打印到控制臺(tái)的,它們默認(rèn)是隱藏的。下面給大家介紹幾種常用的方法,感興趣的朋友跟隨小編一起看看吧2024-04-04關(guān)于?Math.random()生成指定范圍內(nèi)的隨機(jī)數(shù)的公式推導(dǎo)問題
在 java 中,用于生成隨機(jī)數(shù)的 Math 方法 random()只能生成 0-1 之間的隨機(jī)數(shù),而對(duì)于生成指定區(qū)間,例如 a-b 之間的隨機(jī)數(shù),卻只能用相關(guān)計(jì)算公式,今天通過本文給大家介紹Math.random()生成隨機(jī)數(shù)的公式推導(dǎo)問題,感興趣的朋友一起看看吧2022-09-09聊聊Java 成員變量賦值和構(gòu)造方法誰先執(zhí)行的問題
這篇文章主要介紹了聊聊Java 成員變量賦值和構(gòu)造方法誰先執(zhí)行的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10SpringBoot項(xiàng)目發(fā)送釘釘消息功能實(shí)現(xiàn)
在工作中的一些告警需要發(fā)送釘釘通知,有的是發(fā)給個(gè)人,有的要發(fā)到群里,這時(shí)項(xiàng)目就需要接入釘釘,實(shí)現(xiàn)發(fā)消息的功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-02-02java實(shí)現(xiàn)學(xué)生成績檔案管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生成績檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07