题目: 剑指 Offer 24. 反转链表 ,我们今天还是来看一道easy的题目吧,毕竟还是得从简单的做起,这是选自剑指Offer上的一道题,好了,我们一起来看看题意吧:
考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!
- 题目传送门:
思路
:
我先说明下额,题的解法肯定多种多样,我这里选择我用的解法讲解给大家听
思路很简单,我们在遍历链表时,改变他的指向方向就行了,比如样例1:我们将2指向1,这是不是就算是反转了呢😀,后面的继续按照这个逻辑循环就是,直接拿下
我们来看看成功AC的代码吧:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { //ans最开始指向NULL ListNode* ans = NULL; ListNode* cur = head; while(cur){ //暂存 cur节点的next节点 ListNode* t = cur->next; //cur的next改变指向方向,指向ans cur->next = ans; //相当于ans插入了一个节点 ans = cur; //cur更新 cur = t; } return ans; } };
小总结:这道题整体来看还是比较简单的,只需要稍微注意下是如何改变指向方向的
ps:需要图解的话,可以在评论区留言或者私信额,给你们录视频😋(此处应有掌声
结语