文章目录
- 题目
- 解题思路
题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 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;
}
}