腾讯精选练习(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%的用户
在这里插入图片描述

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