亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java語言實(shí)現(xiàn)反轉(zhuǎn)鏈表代碼示例

 更新時(shí)間:2017年10月16日 10:14:06   作者:lilivian  
這篇文章主要介紹了Java語言實(shí)現(xiàn)反轉(zhuǎn)鏈表代碼示例,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。

問題描述

定義一個(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)文章

最新評(píng)論