您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關利用Java怎么實現一個反轉鏈表,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表并輸出反轉后的鏈表的頭結點。鏈表結點如下:
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }
思路1:
要想反轉鏈表,對于結點i,我們要把它的next指向它的前趨,因此我們需要保存前趨結點,同時,如果我們已經把i的next重新賦值,會無法找到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:
使用遞歸的思想(暫時沒有想到,因為如果用遞歸的話,每次應該是:鏈表的第一個結點<—遞歸返回的鏈表的尾指針,但是這樣的話就無法獲得反轉后的頭指針了。)
看完上述內容,你們對利用Java怎么實現一個反轉鏈表有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。