🖊作者 : Djx_hmbb
📘专栏 : 数据结构
😆今日分享 :
----------“覆蕉寻鹿”:
有的人把假的当成真的,而又有人把明明是真的事情当成假的,前者可以说是“黄粱美梦”,后面这种就是“覆蕉寻鹿”。以前有个樵夫打死了一头野鹿,因为一时带不回家,怕被其他人发现,就先用芭蕉叶把牠覆盖起来;后来樵夫去找鹿,忘记了所藏的地方,怎么也找不到,最后以为是自己做了一场梦。所以用“覆蕉寻鹿”来比喻把真实的事情看作梦幻的情况,也可用“覆鹿寻蕉”,都是一个意思。 ------谢一
文章目录
- ✔题目链接 :
- ✔题目:
- :>解题思路:三指针翻转法 和 头插法
- ✔法一(头插法):
- ✔图解:
- ✔法二(三指针反转法):
- ✔图解:
- 家人们,点个![请添加图片描述](https://img-blog.csdnimg.cn/11dae7d2dd1b46b2b021edaccee67cf1.jpeg)再走呗~
✔题目链接 :
【力扣-203】
✔题目:
:>解题思路:三指针翻转法 和 头插法
✔法一(头插法):
:> 方法 : 每一个节点都进行头插 -> 直接新一个头指针 , 然后将原指针的结点依次赋值给新指针
struct ListNode* reverseList(struct ListNode* head){
struct ListNode* cur = head;
struct ListNode* newhead = NULL;
//头指针为空时,返回头指针
if (head == NULL)
{
return head;
}
//头指针不为空时,
while (cur != NULL)
{
struct ListNode* next = cur->next;
cur->next = newhead;
newhead = cur;
cur = next;
}
return newhead;
}
✔图解:
✔法二(三指针反转法):
struct ListNode* reverseList(struct ListNode* head) {
//三指针反转法
if (head == NULL || head->next == NULL)
{
return head;
}
SLT* n1 = head;
SLT* n2 = n1->next;
SLT* n3 = n2->next;
n1->next = NULL;
while (n2)//
{
n2->next = n1;
n1 = n2;
n2 = n3;
if(n3)
n3 = n3->next;
}
return n1;
}
✔图解:
感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!