题目:

Reverse a singly linked list.

提示:

此题不难,可以用迭代或者递归两种方法求解。记得要把原来的链表头的next置为NULL;

代码:

迭代:

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head) return NULL;
ListNode *pre = head, *cur = head->next;
pre->next = NULL;
ListNode *tmp;
while (cur) {
tmp = cur->next;
cur->next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
};

递归:

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
return reverseNode(head, NULL);
} ListNode* reverseNode(ListNode* head, ListNode* newHead) {
if (!head) return newHead;
ListNode *next = head->next;
head->next = newHead;
return reverseNode(next, head);
}
};

最新文章

  1. Sql 常见问题
  2. mysql一些小技巧
  3. js判断手机访问PC端跳转到手机站
  4. Fortify
  5. Linux系统安装LAMP
  6. OpenNMS Log Correlator
  7. Android中九种dialog对话框代码
  8. 直接拿来用!最火的iOS开源项目(一)
  9. 微信小程序 - 上拉加载
  10. 《You dont know JS》类型篇总结
  11. PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
  12. 高可用之KeepAlived(2):keepalived+lvs
  13. git branch --set-upstream 本地关联远程分支
  14. HTML5_图片合成_刮刮卡
  15. Linux内核之进程地址空间
  16. Flink--本地执行和集群执行
  17. Hibernate学习笔记1.1(简单插入数据)
  18. 2018-2019-1 20189218《Linux内核原理与分析》第六周作业
  19. Ubuntu 关闭防火墙
  20. SQL Server 2008下日志清理方法 2

热门文章

  1. PipedInputStream和PipedOutputStream详解
  2. Struts流程分析+源码分析
  3. .net数据统计系统设计(中小型)
  4. 用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动用属性:animation-play-state:paused暂停,在微信和safari里设置paused无效,在QQ里是正常的
  5. 使用NetronGraphLib类库开发Qfd质量屋编制工具
  6. Python的join()函数和split()函数
  7. 《JAVA与模式》之简单工厂模式
  8. makefile介绍1.0
  9. 纯css实现select下拉框并排显示
  10. 后台开发之IO缓冲区管理