LeetCode #206
来源:互联网 发布:淘宝网购物女装t恤 编辑:程序博客网 时间:2024/04/25 14:21
题目描述:
Reverse a singly linked list.
click to show more hints.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
实现链表的翻转,而且题目提示可以尝试迭代和递归两种方法。
算法思路参考:http://www.cnblogs.com/grandyang/p/4478820.html
迭代的方法比较容易想到,不过指针的操作略微复杂需要比较小心。先定义result节点,将其置于head节点之前,然后每次都把head之后的节点插入到result之后,直到head->next为空,即head为最后一个节点,迭代结束。由于需要保证将head->next移动至result之后,那么head->next显然不能为空,所以节点数为0或者1的情况需要预先排除。
class Solution {public: ListNode* reverseList(ListNode* head) { if(head==NULL) return NULL; else if(head->next==NULL) return head; ListNode* result=new ListNode(0); result->next=head; while(head->next!=NULL) { ListNode* p=head->next; ListNode* q=head->next->next; ListNode* temp=result->next; result->next=p; p->next=temp; head->next=q; } return result->next; }};
class Solution {public: ListNode* reverseList(ListNode* head) { if(head==NULL) return NULL; else if(head->next==NULL) return head; else if(head->next!=NULL) { ListNode* p=head; head=reverseList(p->next); p->next->next=p; p->next=NULL; } return head; }};
阅读全文
0 0
- Leetcode 206
- LEETCODE 206
- Leetcode 206
- leetcode 206
- LeetCode #206
- leetcode 237和leetcode 206
- <LeetCode><Easy>206 ReverseLinkedList
- LeetCode 206 单链表逆置
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- 输出每个ip的连接数,以及总的各个状态的连接数
- Codeforces Round #435 (Div. 2): C. Mahmoud and Ehab and the xor
- rem-针对屏幕旋转和默认字体大小不是16px的解决方案
- 广播监听网络
- TreeSet的两种排序方式:自然排序和定制排序
- LeetCode #206
- 分页工具:PageHelper
- Oracle表名占用关键字解决
- EditText限制输入字符类型的几种方式
- MySQL中character set和collation介绍
- [Java]Socket和ServerSocket学习笔记
- 获取外链css元素的样式属性值
- NIO中的几个基础概念
- 算法与分析设计 实验——插入排序C语言实现