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;
    }

  

 

posted @ 2019-06-11 23:05  会飞的企鹅吧  阅读(140)  评论(0编辑  收藏  举报