美文网首页
面试题24. 反转链表

面试题24. 反转链表

作者: 阿星啊阿星 | 来源:发表于2020-02-14 13:19 被阅读0次

    反转链表

    题目描述

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点

    示例:

    输入: 1->2->3->4->5->NULL
    输出: 5->4->3->2->1->NULL


    提示:
    0 <= 节点个数 <= 5000

    转载来源:力扣(LeetCode)


    题目分析

    1→2→3→null
    初始化时h为1,now为2,h的next设置成null,有:
    null ←1(h) 2(now)→3
    现在将保存一下now的next,然后now的next改成前面的head,h修改成now,now修改成保存值,有:
    null ← 1←2(h) 3(now)
    重复上面操作,有:
    null ←1←2←3(h) null(now)
    当now为null时,返回h即可

    class Solution {
        fun reverseList(head: ListNode?): ListNode? {
            var now = head?.next
            var h= head
            head?.next = null
            while (now != null){
                val tmp = now
                now = now.next
                tmp.next = h
                h = tmp
            }
            return h
        }
    }
    

    代码文件


    相关文章

      网友评论

          本文标题:面试题24. 反转链表

          本文链接:https://www.haomeiwen.com/subject/zipdfhtx.html