LeetCode-反转链表
1、递归解法
注意点1:当前要处理的
n1--->n2---->n3<-----n4<-----n5
假设当前节点的右边都是已经反转好的,左边是待反转的。
要实现的目标是n3.next是n2,这样就可以继续往前推进了
n2.next.next=n2
注意点2:结束点和迭代如何处理
是将整个链表全部加载到内存中,然后从右开始,往左推进。
注意点3:全局就一个链表翻来覆去的在前后节点之间调整关系。
还要把原来的从左向右的链条给断开,否则会出现环
public ListNode reverseList(ListNode head) { if(head==null || head.next==null){ return head; } ListNode p = reverseList(head.next); head.next.next=head; head.next=null; return p; }