题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

public static LinkNode reverse(LinkNode current){
        LinkNode next=null;
        LinkNode pre=null;
        while (current != null){
            next = current.next;
            current.next=pre;
            pre=current;
            current=next;
        }
        return pre;
    }

单链表反转需要三个指针

  1. current: 表示当前指针
  2. next: 表示下一个指针
  3. pre: 表示前一个指针

操作过程
首先保存next(临时变量)
java next = current.next;
然后把current的next指向pre(堆中的pre内存地址)
java current.next=pre;
然后把pre指针指向current, pre(栈上)始终要指向current(相对于next是前一个)
java pre=current;
接着下一步继续遍历
java current=next;

算法 文章被收录于专栏

数据结构和算法

全部评论

相关推荐

10-10 16:30
济宁学院 Java
一表renzha:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
Clavoss:一眼AI,死亏
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务