赞
踩
我们继续来看一下单链表的题目和代码吧,把学习的知识运用到实际中,大家加油
1.创建两个指针,为pre curr,curr指向头结点,curr用来遍历链表
2.curr指向下一个结点,要让这个结点的next 指向pre,当然我们首先要保存curr的next指针,保存在temp中,以免找不到
3.采用循坏的时候记得更新指针
代码
- struct ListNode* reverseList(struct ListNode* head) {
- struct ListNode*curr=head;
- struct ListNode*pre=NULL;
- while(curr)
- {
- struct ListNode*temp=curr->next;
- curr->next=pre;
- pre=curr;
- curr=temp;
-
- }
- return pre;
- }
思想和双指针的一样,但是采用了递归的形势
代码:
- struct ListNode* reverse(struct ListNode* curr, struct ListNode* prew) {
- if (!curr) {
- return prew;
- }
-
- struct ListNode* temp = curr->next;
- curr->next = prew;
- return reverse(temp, curr);
- }
- struct ListNode* reverseList(struct ListNode* head)
- {
- return reverse(head, NULL);
- }
希望对你有所帮助,希望可以收到一个赞呀~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。