文章目录
- 题目
- 解题思路
题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
 输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
解题思路
新建一个链表存储当前节点的下一个节点,构造反向的链表,存储当前构造好的反向列表,下一个节点。
/**
 * 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) 
    {
        ListNode prev = null;
        ListNode curr = head;
        while(curr !=null)
        {
            //新建一个链表存储当前节点的下一个节点
            ListNode next = curr.next;
            //构造反向的链表
            curr.next = prev;
            //存储当前构造好的反向列表
            prev = curr;
            //下一个节点
            curr = next;
        }
        return prev;
    }
}



















