騰訊精選練習(39/50) :反轉鏈表(LeedCode 206)

題目

反轉一個單鏈表。

示例:

輸入: 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%的用戶
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章