Leetcode ☞ 206. Reverse Linked List ☆
来源:互联网 发布:冠趣网络 编辑:程序博客网 时间:2024/06/18 10:37
Total Accepted: 88622 Total Submissions: 230653 Difficulty: Easy
Reverse a singly linked list.
本文介绍三种方法,两种非递归,一种递归。
我的AC:(思路:从前往后把每一个点,都放在一个NULL之前)
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head) { struct ListNode *p1, *p2, *p; p1 = NULL; p2 = head; while(p2){ p = p2->next; p2->next = p1; p1 = p2; p2 = p; } head = p1;// while结束时,P跟P2都是NULL的哟~ return head;}
另一个方法,(思路:从前往后,从第二个点开始把每一个点都放在当前头结点之前)
【注意!!while循环条件也不同了!】
struct ListNode* reverseList(struct ListNode* head) { struct ListNode *pCurr, *pNext; pCurr = head; while (pCurr->next != NULL){ pNext = pCurr->next; pCurr->next = pNext->next; pNext->next = head; head = pNext; } return head; }
注意点:pCurr一直指的是a1,不变
高端的=。=递归法(不含头结点版):
struct ListNode* reverseList(struct ListNode* head) { if(head == NULL || head->next == NULL) return head; struct ListNode *newHead = reverseList(head->next); head->next->next = head; head->next = NULL; return newHead;}
太酷了。
head为指向非空单链表中第一个结点的指针,本算法逆转链表并返回逆转后的头指针newHead。
基本思路是:如果链表中只有一个结点,则空操作;否则先逆转a2开始的链表,然后将 a1【head】接在逆转后的链表的表尾(即a2)后面【a2是head->next ,a2之后就是head->next->next】。
0 0
- Leetcode ☞ 206. Reverse Linked List ☆
- 【LeetCode】206.reverse linked list
- [leetcode] 206.Reverse Linked List
- [leetcode] 206. Reverse Linked List
- 206. Reverse Linked List LeetCode
- leetCode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- [LeetCode]206. Reverse Linked List
- 【LeetCode】206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- leetcode 206. Reverse Linked List
- 【LeetCode】206. Reverse Linked List
- leetcode 206. Reverse Linked List
- LeetCode *** 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- 【leetcode】206. Reverse Linked List
- [LeetCode]206. Reverse Linked List
- ubuntu14.04下安装hadoop
- IE input file隐藏不能上传文件解决方法
- C++设计模式之工厂方法模式
- Core Animation -图层与视图
- Linux zip 加密压缩
- Leetcode ☞ 206. Reverse Linked List ☆
- 使用sqlldr 遇到的问题
- oracle创建序列及主键生成策略
- 接口类应用场景用户接口类-vip用户类--商品类
- Centos安装编译环境
- Android MVP模式简单理解与实践
- 开源项目--链接
- 用户管理系统——分页信息
- cling bug 处理