首页 > 其他 > 详细

单链表反转--头插法

时间:2019-10-07 15:22:30      阅读:207      评论:0      收藏:0      [点我收藏+]

思路:设置一个头节点,把之前链表的值一个一个插入到头节点后面,直到插到空!!

不明白为啥t=t->next;要放在第二行!!!

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode* reverseList(ListNode* head) {
12         ListNode *phead=new ListNode(-1);//注意第6行listNode(int x)中括号要写值,这里随便写,因为头节点的val不重要
13         phead->next=NULL;//申请一个头节点,在空结点后插入值
14         ListNode *ptemp;//临时结点,存放插入的值
15         ListNode *t;//控制插入节点的值
16         t=head;//从第一个结点开始
17         while(t!=NULL){
18         ptemp=t;
19         t=t->next;
20         ptemp->next=phead->next;
21         phead->next=ptemp;
22         }
23         return phead->next;
24       }
25 };

 

单链表反转--头插法

原文:https://www.cnblogs.com/hehesunshine/p/11630317.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!