反转链表
题目描述:
输入一个链表,反转链表后,输出新链表的表头。
示例:
题目链接:
思路:
遍历链表让每个结点的next指向上一个结点,这样我们需要设置一个res,初始值为null,从而定义一个新链表,还需要设置一个cur,用来遍历原始链表,注意遍历时需要设置一个temp用来存储cur.next结点,这是为了防止结点信息的遗漏。
代码:
public class Solution {
public ListNode ReverseList(ListNode head) {
if (head == null)
return null;
//设置两个指针,一个指向当前结点,用来遍历链表,一个建立定义新的链表
ListNode res = null;
ListNode cur = head;
while (cur != null) {
ListNode temp = cur.next;//防止信息丢失
cur.next = res;
res = cur;
cur = temp;
}
return res;
}
}