算法

单链表反转

2018-10-25  本文已影响4人  低调_0c1d

概述

将单项链表进行反转,主要是注意两个问题
1.从首节点开始,按照指针依次遍历所有的节点,从而返回尾节点。
2.从尾节点开始,依次将反向修改指针。
如下是实现:

    public static Node reverse(Node node) {
        if (node == null || node.next == null) {
            return node;
        } else {
            Node headNode = reverse(node.next);
            node.next.next = node;
            node.next = null;
            return headNode;
        }
    }

PS:下图中,每次递归都是地址传递,这个很重要,如果实在不能理解,那么就debug跟踪一下代码就可以明白什么意思了


image.png
上一篇下一篇

猜你喜欢

热点阅读