剑指Offer24题目分析

剑指Offer24题目分析

  • 解析思路
  • 代码实现
  • 本例中可以思考的点

解析思路

官方解析
可以采用头插法解决。不了解的可以搜一下。

代码实现

public ListNode reverseList(ListNode head) {

        ListNode p = null;
        ListNode h = null;
        // 头插法
        while(head != null){
            h = head;// h存储head的地址,这时 h==head一样,h.next==head.next一样
            head = head.next;// head储存head.next的地址,这时 h!=head
            h.next = p;// h的next节点指向p。由于上面一步已经导致h!=head,所以这里修改h.next不会影响head
            p = h;// p存储h的地址,这时p==h,p.next==h.next
        }
        return p;

    }

本例中可以思考的点

  1. 头插法
  2. 链表的底层实质:a. 地址和值是分开的。
  3. 待补充,相信随着题目的越做越多,会对这里有更深的理解。

你可能感兴趣的:(力扣,算法)