编程专题-工具类编程语言-Java系列

Java 单链表反转

2019-12-15  本文已影响0人  都是浮云啊
题目描述

有链表结构定义如下:

    @Data
    public class LinkedNode {
        private LinkedNode next;
        private int a;

        public LinkedNode(int a) {
            this.a = a;
        }
    }

现有链表如下,将此链表反转


image.png
非递归方法--遍历修改指针指向

这种方式的思想就是遍历一圈,修改指针,使用一个临时的pre节点存储下一次要修改的节点,一直到链表的末梢就实现了链表的反转

 public LinkedNode reverse(LinkedNode head) {
        // 代表返回时的头节点
        LinkedNode result = null;
        // 存储当前节点
        LinkedNode current = head;
        while (current != null) {
            // 记录下一个节点
            LinkedNode pre = current.next;
            current.next = result;
            result = current;
            // 移步下一个节点,继续循环
            current = pre;
        }
        return result;
    }
上一篇 下一篇

猜你喜欢

热点阅读