ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

周日分享准备

2020-12-04 17:58:21  阅读:198  来源: 互联网

标签:q1 head p1 ListNode struct next 准备 分享 周日


题是很简单的题 (毕竟我从最简单的题开始做的
1.leetcode237
在这里插入图片描述
俺当时看到题第一反应就是。噢 删除呀。不就是p->next=p->next->next?用q来取代p->next ,最后再把q free掉。嗯。这就是应激反应,(压根不看题的傻逼
注意题干。传入函数的唯一参数为要被删除的节点。
上边这个p是你要删除的节点的前一个结点,这显然是不符合的。
想让大家想一想,如果你就是这个节点,我这个做题人啊,要杀了你,这是我接到的命令,你怎么办呢??
好,一个戏剧就出现了。
把自己包装成另一个人,告诉杀手,我已经不是我了,你杀我没有用,你把他杀了就行。反正我已经跟他一模一样了,杀了他。
这就像狸猫换太子 哈哈哈
于是,我们就可以想到。我们把我们要删除的那个节点,包装它的成下一个节点,再free它的下一个节点,不就好了咩。
所以我们可以得到。
node->vail=node->vail->vail.//把我的值跟你一样
node->next=node->next->next//把我的next域也跟你一样
这个结束后,我莫名其妙想起来一句台词,从前的那个xxx,已经死了
然后free 就成!
今天拯救了一个该死没死成的节点。可是它已经不是原来的它了,那跟死掉也没有区别。它代替了它的下一个节点工作着。

如何让自己在世界上消失,但又不死? —— 将自己完全变成另一个人,再杀了那个人就行了。


2.leetcode86分隔链表。
在这里插入图片描述
当时我第一反应是想起来有一次培训作业,让把0都放前面 还有那个奇数在前,偶数在后。所以双指针的思想就是这么涌上心头的!
但实际操作过程中,种种磕绊(谁让我菜
其实链表还蛮像火车的,不知道大家有看过托马斯小火车么///
如果你想让这一列火车根据某种规则交换顺序,你是否可以这样呢。

不好意思本腐女突然很想拿这个做例子。
假如,嗯,这是一个gay的相亲会。0和1配对。我们首先把1和0分开。
那好,你是0,你站左边这一队,你是1?稀有!站右边!!
就这样排呀排呀 0都到左边了,1都到右边了,两队站好了。
然后负责人说1站前面,0站后边,好。两队就合成一队了。接下来就配对吧hhh
所以这个题的思想就很显而易见了,利用两个指针,再创建两个链表,也就是排两队。让比x大的排一队,其余的排另一队,然后再合成一队。就完成了这个题。
注意蛤 你这两队要想合并,都要有头有尾的。
p队开头是p 利用p1遍历。

struct ListNode* partition(struct ListNode* head, int x){
    if(!head||!head->next)
    return head;
    struct ListNode*p=(struct ListNode*)malloc(sizeof(struct ListNode)),*p1;
    struct ListNode*q=(struct ListNode*)malloc(sizeof(struct ListNode)),*q1;
    p1=p;
    q1=q;
    p1->next=NULL;q1->next=NULL;
    while(head)
    {
        if(head->val<x)
        {
            p1->next=head;
            p1=p1->next;
        }
        else
        {
            q1->next=head;
            q1=q1->next;
        }
        head=head->next;
    }
    
    p1->next=q->next;
    q1->next=NULL;
    return p->next;
}

这篇博客写的我好快落!

标签:q1,head,p1,ListNode,struct,next,准备,分享,周日
来源: https://blog.csdn.net/qq_51246916/article/details/110665510

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有