LeetCode:链表逆置
来源:互联网 发布:安正时尚集团 知乎 编辑:程序博客网 时间:2024/05/18 03:08
Reverse Linked List
1、题目描述:
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?
2、代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: // void reList(ListNode * &head,ListNode *pre)// recursively // { // if(head->next) // { // ListNode *p=head->next; // head->next=pre; // pre=head; // head=p; // reList(head,pre); // } // else // { // head->next=pre; // } // } ListNode* reverseList(ListNode* head) { if(!head||!(head->next)) { return head; } // ListNode *pre=nullptr; //iteratively // for(ListNode *p=head;p!=nullptr;) // { // ListNode *p1=p->next; // p->next=pre; // pre=p; // p=p1; // } // return pre; // reList(head,nullptr); // return head; /*参考后面别人代码所写recursively*/ // ListNode *p=reverseList(head->next); // head->next->next=head; // head->next=nullptr; ////执行后会被调用函数再次修改,由里到外 // return p; /*参考后面别人代码所写iteratively*/ ListNode *pre=nullptr,*cur=head; while(cur) { ListNode *nextNode=cur->next; cur->next=pre; pre=cur; cur=nextNode; } return pre; }};
3、总结:
reverseList函数注释掉的第一部分,是我写的循环方法。reList函数是我写的递归辅助函数。在看了后面别人提供的代码后,又重写了一份。reverseList函数注释掉的第二部分,是递归方法,简洁啊,后面就是循环方法。
A、变量的定义要有一定含义。
B、特殊情况先排除。
C、递归理解:
// head->next->next=head; // head->next=nullptr; ////执行后会被调用函数再次修改,由里到外
在链表尾部,tail->next=head,head->next=nullptr,返回调用函数head->next=head1,head1->neaxt=nullptr。
0 0
- LeetCode:链表逆置
- leetcode链表逆置和合并
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- ZERO
- java异常分析
- ACM--模拟--HDOJ 1008--Elevator--水
- 【HDU】5458 Stability(2015 ACM/ICPC Shenyang Online)
- FIRST DAY`S EVE
- LeetCode:链表逆置
- 北航14年上机题
- 第一篇博客
- Hdu 5324 Boring Class (cdq分治)
- 2016暑假算法学习开始
- Codeforces Round #310 (Div. 2)-A. Case of the Zeros and Ones
- UVa 122 - Trees on the level
- 武大WOJ账户的安全性
- 前景检测算法(十四)--SuBSENSE算法