剑指Offer:反转链表【24】
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer:反转链表【24】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
劍指Offer:反轉鏈表【24】
題目描述
輸入一個鏈表,反轉鏈表后,輸出新鏈表的表頭。解題分析
這道題我才發現我是屬于那種真的笨,圖都畫出來了流程寫不出來。看了別人的代碼,總覺得自己差一步。
這也是鏈表題的一個特點,指針的復雜變化。首先毋庸置疑肯定要有三個指針,他們的排列位置如下圖第一行所示。
然后第二個指針,即cur的next一轉,指向第一個,即pre,這是就會出現二指向三的指針斷裂,所以tmp指針需要時刻指向cur指針的下一個。
Java題解
public ListNode ReverseList(ListNode head) {if(head==null)return null;ListNode reversedHead=null;ListNode current=head;ListNode tmp=null;ListNode pre=null;while(current!=null){tmp=current.next; //tmp指針時刻指向cur的下一個節點位置current.next=pre; //cur下一個位置指向前一個節點if(tmp==null) //如果結果為空,返回當前節點,即為倒置后的頭結點reversedHead=current;pre=current; //pre指向當前節點current=tmp; //cur指向下一個節點,然后重復開始此過程}return reversedHead;}
轉載于:https://www.cnblogs.com/MrSaver/p/9219422.html
總結
以上是生活随笔為你收集整理的剑指Offer:反转链表【24】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 熟悉一下oncontextmenu事件的
- 下一篇: 登录页面和FORM的职责不对称,处理方法