反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
注意head是有值的
class Solution {
void Insert(ListNode head,ListNode p){
if(p.next==null)
{
return;
}
Insert(head,p.next);
p.next.next=p;//反转节点
p.next=null;//第一个节点反转后其后继应该为NULL
}
public ListNode reverseList(ListNode head) {
if(head==null){
return head;
}
ListNode tmp = head;
while(tmp.next!=null){
tmp=tmp.next;
}
Insert(tmp,head);
return tmp;
}
}