[LeetCode 206] Reverse Linked List 翻转单链表
2024-09-04 22:46:01
本题要求将给定的单链表翻转,是校招面试手撕代码环节的高频题,能很好地考察对单链表这一最简单数据结构的理解;可以使用迭代和递归两种方法对一个给定的单链表进行翻转,具体实现如下:
class Solution {
public:
ListNode* reverseList(ListNode* head) {
return reverseList_iteratively(head);
//return reverseList_recursively(head);//递归方法leetcode超时
}
//迭代
ListNode* reverseList_iteratively(ListNode* head)
{
ListNode* p = nullptr;
ListNode* w = nullptr;
while(head)
{
p = head->next;
head->next = w;
w = head;
head = p;
}
return w;
} //递归
ListNode* reverseList_recursively(ListNode* head)
{
if(head==nullptr||head->next==nullptr)
{
return head;
}
ListNode* h = reverseList_recursively(head->next);
head->next->next=head;//加入反转后的单链表尾部
head = nullptr;
return h;
}
};
最新文章
- MQTT(二)推送
- Weblogic AdminServer启动失败,<;Security>; <;BEA-090870>; <;The realm ";myrealm"; failed to be loaded
- C++ dynamic_cast对指针类型的转换
- javascript和jquery中获取列表的索引
- Cocos2d-x加速度计实例:运动的小球
- Hadoop的安装与配置说明
- 各I/O模型 对应Web服务应用模型(select,poll,epoll,kevent,";/dev/poll";)
- 网页上PNG透明图片的ie6bug
- hdu 01背包汇总(1171+2546+1864+2955。。。
- myeclipse 编码问题
- object转化为string
- SQL Server的事务处理与高级查询
- Neighbour table overflow --- arp表溢出
- error C2143 &; error C4430
- UVA 1395 Slim Span
- git使用说明
- 201521123036 《Java程序设计》第10周学习总结
- Tensorflow 大规模数据集训练方法
- 我的coding地址
- Orchard详解--第九篇 拓展模块及引用的处理