赞
踩
- /**
- * Definition for singly-linked list.
- * struct ListNode {
- * int val;
- * struct ListNode *next;
- * };
- */
- struct ListNode* reverseList(struct ListNode* head) {
- static struct ListNode*tmp1 = NULL;
-
- if(!head)
- return tmp1;//判空
- else if(head->next)
- {
- 逆置
- struct ListNode*tmp2 = head->next;
- head->next = tmp1;
- tmp1 = head;
- return reverseList(tmp2);
- }
- else
- { //结束同时初始化tmp1
- head->next = tmp1;
- tmp1 = NULL;
- return head;
- }
- }
使用了三个指针,重头到尾遍历一遍,两两反转,其实这个思路不难想到,也应该想到。
官方(十分值得学习):
合理地调整代码顺序可以让代码更加巧妙。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。