leetcode206. 反转链表
2024-09-03 16:20:02
1:迭代法
假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。
在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *pre=NULL;
ListNode *curr=head;
while(curr!=NULL)
{
ListNode *temp=curr->next;
curr->next=pre;
pre=curr;
curr=temp;
}
return pre;
} };
2 递归
class Solution {
public:
ListNode* reverseList(ListNode* head) { if (head == NULL || head->next == NULL) return head;
ListNode* p=reverseList(head->next);
head->next->next=head;
head->next=NULL;
return p;
} };
最新文章
- CST时间转换成 yyyy-MM-dd格式
- centos7 docker zookeeper
- google vr开源 cardboard
- iOS RSA加密解密及签名验证
- JDK历史版本下载
- C# 毕业证书打印《二》
- java_ _反射
- Mysql创建和删除用户
- 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡
- PHP手机获取6为不反复验证码
- Dedecms v5.7包含上传漏洞利用
- [置顶] ZK高级特性:Style定制与客户端集成
- tortoisegit安装
- prometheus比zabbix好在哪点?
- MySQL和Sql Server的sql语句区别
- c++实现web服务框架
- python参数传递方式
- 服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
- 『转』G Data InternetSecurity 2014 – 免费3个月
- [转]对象映射类AutoMapper的使用