00:00
那么我给大家演示一个这个删除的功能,修改这个大家可以自己去玩一把啊啊删除呢,就说你给我一个,至少给我一个ID吧,你给我一个ID,然后呢,我就到这里去找。那找的时候仍然要遵循这个原则啊,同学们,你在找的时候呢,依然要让这个temp的下一个跟这个ID比较,因为你如果不用不不让他步下一个比较,你即使找到了你,你你也干不掉他。你干不掉他,假设你看,假设你找到松江,你的temp步就在松江,你你把怎么干掉,你干不掉,所以你一定要找到这个temp步的下一个,下一个直接跟他进行比较,这就是头节点的价值,好,我们来直接写东西了啊,另外修改和这个查找我留给你们还有一个就是。我要求大家写的一个什么,呃,从那个链表头取。先到时候想想怎么取,这样如果我有一个从对尾插入,从链表尾部插入,还有一个从这个链表的头插入进取,其实就是一个非常经典的队列了,而且这个队列你放心,比原先那个还更好读它每次用头取取取取,对吧,非常简单,好,那么我们来写一个案例,叫删除。
01:15
好,Function。来写一个啊,删除删除一个节点。没问题吧,同学们删除一个节点,那么我这就写一个delete。对,什么hero no,同样,你要删除一个东西,你必须给我一个头节点,你不给我头节点,我什么都干不了。第二个你还要给我一个你要删除的这个ID,对不对,那么我们直接玩一把。老规矩还是要一个跑堂的,你没有跑堂这个干不了事儿啊,所以说这块呢,我就不写注释了。先来一个跑堂的,那先跑堂的呢,先来找东西找,哎找的时候怎么找呢?诶大家看,那就是跟我这个去找一个插入的节点类似,只是不一样的地方是它要找相同的,所以说我把这个呢整个复制过来。
02:12
整个复制过来,这一块大体的含义是相同的。然后开始找怎么呢?诶这找到这个要插入应该是这样子啊,找到要删除的一个节点找到。找到要删除的,要删除的这个节点。删除的基地,嗯,那么还是让他补下一个比较啊,第一种可能性就是找到最后。都没有。就是最后这个都不是temp.next这个还应该还没比比比比过一次啊,就是next就一个一个的比他下一个啊,它是因为是始终是temp的,前temp跟他后一个比,所以这个应该是比较过了啊,比较过了因为是next的比较的。
03:02
好,那么我们来找一下啊,Next等于空,如果说这个等于。如果说这个等于了啊,如果这个等于说明我们找到了,这相当于找到了,我们这样先写个bos,假设找不到。假设找不到啊,那么这个条件呢,一旦成立。这个条件一旦成立,就是说找到了就是temp的下一个节点,就是我们删除的。好把它改成数啊,说明这个就找到了。说明什么呢?说明我们找到了。啊,找到。找到。那么找到我就退出,那如果说整个在这个过程中没有找到这个比较就没有意义了。对,就是。就是说一种情况下,就是我不停的去找,找到这个列表最后了,对吧,就是要找到列表最后。如果temp.next等于空,然后呢,我也去判断一下它next这个值到底是不是对它是不是好,这样一个情况下呢,不停走,我们就应该把它找到了,那么就把它删除就行了啊删除怎么删除呢?
04:11
啊,如果。如果这个flag。为真,就说明确实找到了。找到,如果找到呢,就删除。那删除怎么删除呢?同学们看一下。假如对这个图而言啊,比如说我们在这个过程中,我们找到的是最好用户。假设我们找的是一个用户二号。我们删的是二号。删除一个二号,那么要删除二号的话,我们现在是在这个第一个节点要删除其实很简单,只需要让喷补的下一个节点直接。指向下一个节点,就是说让temp的这个地方直接指向卢俊玉就可以了。那如果这样指的有什么好处呢?这样好的话就是说当我头节点在变的时候,这个节点就会被抛弃,那这个节点会变成一个什么节点呢?这个节点就会变成一个垃圾节点。
05:08
老师,为什么他不是垃圾啊,他不是指向跟别人吗?注意它指向别人没有用,只有当别人指向它才会有用,所以说这个节点呢,就会被我们的垃圾回收器销毁。最后这个就被干掉了,那这条线也就没有存在价值,最后这个二就被拿掉了,他这么一个逻辑,好,那么我们其实就需要写一句话,就是temp。temp.next等于什么呢?点next就是temp.next等于temp.next。啊,我看看啊点next。Next next,第二,Next。啊,大家看是不是这个道理啊,这个道理,那我们玩一把吧,我们玩一把,那么还有一种情况就是没有找到哈,没有找到那这个应该换直接换成ID。
06:00
还有一种情况就是没有没有找到,那就提示一句话嘛,就说对不起,你要删除的ID号不存在。其实一句可爱的话啊,就sorry。Sorry ID不存在,要删除的,要删除的ID不存在,不存在。好,那这个事情就做完了,做完了我们来玩一把。好,我们来删一个。我直接调函数了啊,我们三一个,呃,有有有三个的话,我们还是这样子啊,加入的时候我们不要加这么多。呃,我们就就加三个,这个先不要了,先注销。先注销啊,同学们,我就加三个,加三个呢,我们来三个加,加完过后我们显示一下再删除。好,删除。那删除一个节点呢,呃,这个也很正常,就是这样写的,对。把我们的头节点给他,然后呢,把你要删除的ID给他,比如说我们要删除一个二号,卢俊义删一个二号,删完了过后我们再显示一次。
07:09
好,这个时候呢,就会少一个卢俊义就可以了,好,走一个。跑一个啊,同学们看一下。这个看一下啊,这个应该没有换行,看起来有点怪啊啊看起来有点怪print。那朋友们再再跑一下。同学们看,原先呢,他有一个宋江,卢俊义和林冲被我干掉。二号过后变成。一号和三号了,对,那有些同学老师你再接着删呗,把它删光都可以啊,那三个没有的话,那这上面个是空空链表那就没有了啊,你看我再删一个一号,我们三个表头的位置把宋江删掉。啊,这个时候是宋江没有,果然如此对吧,果然如此,当然你也可以把最后这个删掉,说老师我再删一个,那也可以删两个,说把三号也删掉。
08:01
好,三号给删掉,这样子就应该只留下了一个卢俊义。卢俊义。好,我们看看这部是,诶,果然如此,只有如俊义,但是有些同司我把卢俊也删掉,那是空了啊,以此类推,这个字己大家去测一下就行了,好,关于删除呢,我们就给大家讲到这里啊,我把这个代码呢也给他补一补。删除咱们就说完了。删除我们就说完了,其实你你相当于做了一个内存的数据库,说白了就是做了一个自己属于自己的内存数据库。好,我把它写到这里,我们再补讲了一个,就是删除删除节点,删除节点呢,呃,我们的方法是这样子的。诶删除节点,我们方法是这样子的。写了一个这样的代码。OK,同学们看一下就应该能看懂,好,同学们应该看懂。那今天晚上肯定要肯定要花点时间去看了啊,同学们就是说你在学完这些东西过后呢,你不可能说老师一讲你就彻彻底底的就明白了,你最多也就只能做到一点,说老师讲了我大概明白,但是要你自己啊,就能够把它马上写出来,肯定是要看东西的啊同学们好,那这一块呢,我们今天单列表就先说到这里。
我来说两句