解题思路:
1.迭代–创建一个新的链表的哑巴节点root,创建一个过度指针n,使用头插法将head链表中的元素取出插入root链表中,返回root.next;
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode root=new ListNode(0);
ListNode n=null;
while(head!=null){
n=head;
head=head.next;
n.next=null;
n.next=root.next;
root.next=n;
}
return root.next;
}
}
2.递归
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode h=reverseList(head.next);
head.next.next=head;
head.next=null;
return h;
}
}