一、題目描述
定義一個函式,輸入一個鏈表的頭節點,反轉該鏈表并輸出反轉后鏈表的頭節點,
示例:
輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL
二、解題思路
要實作鏈表的反轉時,將當前節點的next 指標改為指向前一個節點,由于當前節點沒有參考其前一個節點,因此必須事先存盤當前節點的前一個節點,而在更改參考之前,還需要存盤當前節點的下一個節點,不然無法實作遍歷鏈表,最后回傳新的頭參考,
三、代碼實作
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null || head.next==null) return head;
ListNode prev=null;
ListNode cur=head;
while(cur!=null){
ListNode curNext=cur.next;
cur.next=prev;
prev=cur;
cur=curNext;
}
return prev;
}
}
四、運行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273309.html
標籤:其他
下一篇:Mallet演算法及濾波器
