反转链表

作者: 刘年年 | 来源:发表于2022-07-19 11:33 被阅读0次

    描述:

    给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

    数据范围: 0 ≤ n ≤ 1000

    要求:空间复杂度 O(1) ,时间复杂度 O(n) 。

    如当输入链表{1,2,3}时,

    经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

    以上转换过程如下图所示:

    示例1

    输入:{1,2,3}

    返回值:{3,2,1}

    示例2

    输入:{}

    返回值:{}

    说明:空链表则输出空

    ListNode数据结构如下:

    反转链表我们通过两种方法来实现,第一种是递归的方式,第二种是迭代的方式,实现代码如下:

    1、迭代实现:

    迭代

    2、递归实现

    递归

    相关文章

      网友评论

        本文标题:反转链表

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