LeetCode--206. 反转链表

题目

反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL


实现

非递归

    public static ListNode reverseList(ListNode head) {
        ListNode reverseHead = null;

        //遍历节点,用于移动链表的
        ListNode temp = head;

        //翻转后,用于记录当前节点的前一个节点
        ListNode pre = null;

        while(temp != null){
            //移动到最后一个节点时,此时该节点就是翻转后的头节点
            if(temp != null && temp.next == null){
                reverseHead = temp;
            }

            //当前节点的下一个节点
            ListNode actualNext = temp.next;

            //使当前节点的next指针指向pre节点(这才会进行实际的翻转操作)
            temp.next = pre;
            //给pre节点赋值(把当前节点赋值给pre,当下次循环进来时,使当前节点的next指针指向pre节点)
            pre = temp;

            //移动到下一个节点
            temp = actualNext;
        }

        return reverseHead;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [{"reportDate": "2018-01-23 23:28:49","fluctuateCause": n...
    加勒比海带_4bbc阅读 783评论 1 2
  • 1. 逆序打印链表(单链表) 给定单链表,从尾到头打印每个节点的值,不同的值之间用空格隔开。比如:1>2>3>4>...
    少冰三hun甜阅读 4,034评论 1 12
  • 出差,我跟太太说了我回家的时间是夜里一点半左右。于是到家打手机,手机没人接。于是敲门,还是没人答应怎么回事...
    行动力_张宝行阅读 307评论 2 5
  • 每天到家忙完 一躺到床上 就会想起 该给妈打个电话了 只想问问 妈复查过后的眼睛 最近视力怎样了 可是总是一看表 ...
    凡水伊人的凡阅读 198评论 0 0
  • 云山脚下住,摩星岭上行。 弓叉逐栖鸟;断刀取柴薪; 火点蜂群炸;石攻峰台临。 豪气凭虎胆,顽孩岁十龄。
    龍寅阅读 144评论 1 1