牛客刷題——連結串列反轉
阿新 • • 發佈:2021-01-30
技術標籤:牛客刷題
挺簡單的一道題,當初筆試還寫過,簡單記錄一下~
連結串列反轉1->2->3->4->null;反轉後變為4->3->2->1;即null<-1<-2<-3<-4;
因此考慮反轉步驟為 1) null<-1,2->3->4 2) null<-1<-2,3->4 3) null<-1-<2-<3,4 4)null<-1<-2<-3<-4
所以只需要採用while迴圈依次進行處理即可。
在進行處理的時候,首先確定當前結點now,拿到當前結點的next節點(now和next均不為空)拿到next的next節點nNext(防止連結串列丟失),然後重新調整now和next之間的關係,調整完之後,now和next後移。
完整程式碼如下:
public static ListNode ReverseList(ListNode head) { if(head==null||head.next==null) { //特殊情況處理 空連結串列或者單個節點直接返回 return head; } ListNode nowN = head; //從首元素出發 ListNode nextN = nowN.next; //下一個元素 nowN.next = null; while(nextN!=null){ System.out.print(head.val+" "+nextN.val); ListNode nNext = nextN.next; //進行反轉 nextN.next=head; head = nextN; nextN = nNext; } return head; }