题目
反转一个单链表。
示例:
输入: 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%的用户