- 建立虚拟头结点辅助反转
代码实现:
/**
* 方法一:虚拟结点法
*
*/
public static ListNode reverseList1(ListNode head){
//创建虚拟头
ListNode ans = new ListNode(0);
ListNode cur = head;
while(cur!=null){
//保存下一个结点
ListNode temp = cur.next;
cur.next = ans.next;
ans.next = cur;
cur =temp;
}
return ans.next;
}
2.直接操作链表实现反转
/**
* 方法二:直接实现链表反转
*/
public static ListNode reverseList2(ListNode head){
ListNode prev = null;
ListNode cur = head;
while (cur!=null){
ListNode temp = cur.next;
cur.next = prev;
prev=cur;
cur=temp;
}
return prev;
}