本题要求将给定的单链表翻转,是校招面试手撕代码环节的高频题,能很好地考察对单链表这一最简单数据结构的理解;可以使用迭代和递归两种方法对一个给定的单链表进行翻转,具体实现如下:

 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;
}
};

最新文章

  1. MQTT(二)推送
  2. Weblogic AdminServer启动失败,<Security> <BEA-090870> <The realm "myrealm" failed to be loaded
  3. C++ dynamic_cast对指针类型的转换
  4. javascript和jquery中获取列表的索引
  5. Cocos2d-x加速度计实例:运动的小球
  6. Hadoop的安装与配置说明
  7. 各I/O模型 对应Web服务应用模型(select,poll,epoll,kevent,"/dev/poll")
  8. 网页上PNG透明图片的ie6bug
  9. hdu 01背包汇总(1171+2546+1864+2955。。。
  10. myeclipse 编码问题
  11. object转化为string
  12. SQL Server的事务处理与高级查询
  13. Neighbour table overflow --- arp表溢出
  14. error C2143 & error C4430
  15. UVA 1395 Slim Span
  16. git使用说明
  17. 201521123036 《Java程序设计》第10周学习总结
  18. Tensorflow 大规模数据集训练方法
  19. 我的coding地址
  20. Orchard详解--第九篇 拓展模块及引用的处理

热门文章

  1. python错误大全
  2. 前端使用 node-gyp 构建 Native Addon
  3. docker化hbase并使用外部zookeeper
  4. 创建节点--DOM树
  5. python下vs的使用
  6. HDU 5544 Ba Gua Zhen ( 2015 CCPC 南阳 C、DFS+时间戳搜独立回路、线性基 )
  7. Win2008 R2 IIS FTP防火墙的配置
  8. 一种关闭Windows 8.1 Windows Defender的简单办法
  9. 转:Jmeter文件上传、下载
  10. 关于bert+lstm+crf实体识别训练数据的构建