反转链表

描述:

给定一个单链表的头结点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、递归实现


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

推荐阅读更多精彩内容