題目
反轉一個單鏈表。
示例:
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL
進階:
你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題?
代碼實現
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution
{
public ListNode ReverseList(ListNode head)
{
if(head == null || head.next == null)
return head;
ListNode Ans, temp1, temp2;
Ans = head;
temp1 = Ans.next;
while(temp1 != null)
{
temp2 = temp1.next;
temp1.next = Ans;
Ans = temp1;
temp1 = temp2;
}
head.next = null;
return Ans;
}
}
實驗結果
執行結果:通過
執行用時 :100 ms, 在所有 C# 提交中擊敗了97.19%的用戶
內存消耗 :23.2 MB, 在所有 C# 提交中擊敗了5.26%的用戶