题目描述
输入一个链表,反转链表后,输出新链表的表头。
示例:
输入:{1,2,3}
返回:{3,2,1}
数据结构:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
解题思路:
代码:
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode pre = null;
ListNode tmp = null;
while(head!=null){
//保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂
tmp = head.next;
// 开始反转
head.next = pre;
pre = head;
// 移动head
head = tmp;
}
return pre;
}
}