描述
Reverse a singly linked list
例子
思路
因为要反转,所以就会断了当前结点和下一个结点的本来关系,所以要保留下一个结点xia
- 方法1
遍历链表,对于每个结点,先保留下一个结点的位置,然后采用头插法,将该结点插入新的链表,修改当前结点
时刻保存当前结点
- 方法2
遍历链表,对于每个结点,先保留下一个结点,然后,将head指向pre,修改pre和head
时刻保存前一个结点和当前结点
- 递归
答案 - java
public ListNode reverseList(ListNode head) {
ListNode hhead = new ListNode(-1);
while(head!=null){
ListNode temp = head.next;
head.next = hhead.next;
hhead.next = head;
head=temp;
}
return