范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

3分钟学个算法链表反转

  题目描述
  输入一个链表,反转链表后,输出新链表 的 表头。
  输入 {1,2,3,4,5}
  返回值 {5,4,3,2,1} 解题
  初拿到这题,很容易联想到反转系列用java的api中提供了几个类似的api如 Collections.reverse() 和StringBuilder.reverse() 。他们提供了直接对集合、字符串的反转api。需要的就是根据链表构建集合,再将集合反转,反转后再重新构建链表指向关系。代码如下:public static ListNode reverseByList(ListNode head) {         //方法先判断入参         if (head == null) {             return null;         }         //只有一个元素的直接返回         if (head.next == null) {             return head;         }         List  list=new ArrayList<>();         while(head!=null){             list.add(head);             head=head.next;         }         //直接使用Collections的reverse反转         Collections.reverse(list);         // 反转后重建指向关系         for(int i=0;i list){          // 如果只有0或者1个元素,不需要做处理          if(list.size()<=1){              return;          }          int size=list.size();          int half=(size-1)>>1;       //从中号位遍历到0号位,将i位与size-1-i位进行互换实现集合的反转          for(int i=half;i>=0;i--){              ListNode temp=list.get(size-1-i);              list.set(size-1-i,list.get(i));              list.set(i,temp);          }      }
  对于链表反转,上面链表反转思路是转为集合,对集合进行互换位置反转,然后再重建指针指向。还有一种只针对链表反转更有效的方式,即直接改变指针指向即可。用一个pre保持指向之前的节点的指针,用一个current指针指向当前遍历节点。直接改变当前指针的指向,由指向下一个节点改造为指向前面的节点。原理图如下:
  代码实现如下:   public static ListNode reverseLinkNode(ListNode head) {           //方法先判断入参           if (head == null) {               return null;           }           //只有一个元素的直接返回           if (head.next == null) {               return head;           }       // 用于保持之前的指针,便于current指向           ListNode pre = null;           ListNode current = head;           //temp用于保持当前节点的下一个节点的指针,使得遍历继续           ListNode temp;           while (current != null) {               temp = current.next;               current.next = pre;               pre = current;               current = temp;           }           //因为循环终止条件是到最后current为null了,链表的头节点应该是pre,即最后一个非空节点           return pre;       }
  还有没有其他思路?在集合反转的时候除了交换对称位置的元素,如果想到 stack 的 FILO 特性,也很 方面 的使用 stack 进行反转集合,但是要额外使用一个n大小的栈空间。时间复杂度都是O(n)。java中需要用栈可以用 LinkedList 实现。总结
  对于链表反转主要两种思路:
  一个是直接改变链表节点指针实现,即原先指向下一个节点的指针改为指向前一个节点,这种时间复杂度是O(n),空间复杂度是O(1),一次遍历完成,效率较高。
  另一种即将链表转为集合,可以用Java的 Collections.reverse() 直接反转或者用交换头尾元素的思路或者利用LinkedList 的 FILO特性用分别用addLast 与pollLast 方法进行添加和删除,反转集合后重建指针指向,这类思路,时间复杂度是O(n),空间复杂度是O(n)(因为创建新的列表需要空间,栈也同样需要),针对链表反转总体效率不如第一种。
  - END -

二驴连麦驴爸,透露二子爷曾为亡母抬棺,坦然对方做人没问题关注ks平台比较久的朋友,对驴家三兄弟一定有所了解。二驴作为平台元老级网红中的代表人物,从ks刚刚兴起的时候,便带领小胖二子爷拍摄搞笑视频。也是通过这些视频,让二驴有了原始的粉丝积白小白举办卖货活动,众网红都为其发视频宣传,唯有二驴差事ks作为最早的短视频平台,在起步阶段就主打下层用户,且带着浓厚的北方文化(东北为主)。北方人的豪爽,为ks奠定了江湖气浓重的基调,这种文化传承至今。从早年间的网黑到现如今的网红家族土豪东方阿保再撕辛巴,透露其将被点名封杀,账号转发相关报道作为ks平台网红圈内的后起之秀,辛巴在当年靠着直播带货的东风一跃崛起,碾压了众多老牌网红,成为了新一任的网红一哥。也正是因为这一原因,导致辛巴在无形中得罪了很多平台内部的老主播,抢各大网红效仿二驴,高迪吴迪主动连麦辛巴,让其给自己刷礼物近日,在师傅辛巴的授意下,蛋蛋赵梦澈等众多818带货博主,先后两次现身娱乐主播二驴的直播间,为其刷出了高达数百万的礼物。直播带货兴起后,ks平台做娱乐直播的网红就越来越少,大家都转辛巴为老方丈豪刷百万礼物,因拒绝连麦被踢出直播间,粉丝误会ks的网红圈子内部,存在各式各样的小团体,头部主播向来喜欢抱团取暖。基于平台江湖义气的特有文化,这些关系好的网红,都喜欢以兄弟相称。在这其中最受人关注的一对网红兄弟,无疑就是拥有9老方丈铁粉连麦李舒克,言辞激烈大骂辛巴,嘲讽其缺德不缺钱关注ks比较久的朋友就会知道,网红老方丈和辛巴的关系一直比较要好。当年辛巴被以二驴和散打哥为首的老牌网红家族集体抵制时,唯有老方丈站出来支持他。从那时候开始,两人便在平台以兄弟相称铁山靠宣布无限期退网,孙一宁连麦表示不舍,网传封禁期限为3年邦邦两拳怕啥来啥我是嫩爹靠着这几句口头禅,山东籍主播铁山靠,在近几个月一跃成为了全网热度最高的爆火网红,风头一时无二。直播间的在线观看人数一度突破百万,就连很多从事直播行业多年的元高晓松回应质疑不被买账,过往言论三观清奇,比张哲瀚行为都过分文趣灵儿(文章出品原创号蜗牛娱乐话,禁止转载)随着张哲瀚参观靖国神社,并且当作景点打卡一事犯了众怒之后,网友们行动起来,发现有些公众人物对于参观靖国神社一事不以为意。甚至还有很多人网传谢娜已生二胎,透露依旧是女儿?张杰生儿梦破灭?谢娜二胎已经出生了,还是一个小公主,这是真的吗?好羡慕娜姐和杰哥的爱情啊!不造谣不传谣,期待两人官宣!马上跳跳俏俏就要升级为姐姐了!一定会是很幸福的一家五口啦!说起张杰和谢娜的爱情让男人怀孕的禁忌女孩,带你揭露人性弱点Netflix原创剧集禁忌女孩已经播完了好几天,然而相关词条依旧是每天热搜榜单上的常客。第二季自播出之后,热度一直居高不下,甚至超高讨论度让剧迷与网友共同将禁忌女孩为何会爆火的问题活在觉醒年代的续集,与有荣焉昨天上午的北京天安门,战鹰列列,彩旗招展。100彩烟辉映长空,100礼炮响彻云霄。国旗护卫队大步向前,步步坚定有力。青年代表们的口号响彻云霄,振奋人心。无数国人守在屏幕前,光是看着
漫威释出缅怀黑豹短片,美国队长黑寡妇钢铁侠给予高评价凭借漫威电影黑豹红遍全球的男星德维克博斯曼,日前因大肠癌病逝,他的离开对漫威宇宙电影的进程很大造成影响,更是成为了众多漫威迷心中难以抹平的伤痛。博斯曼2016年首度在漫威电影美国队专辑发行一周年,IU李知恩送粉丝惊喜,公开2段现场演唱视频最近透露正在忙碌筹备最新专辑的IU李知恩,也没有忘记11月18日是自己上一张专辑LovePoem的一周年纪念。她先是在Instagram上传数张拍摄MV的幕后花絮照片,去年同时期的沙雕剧鬼才福田雄一新作扎堆上线,又可以截桥本环奈的表情包了说起沙雕剧,脑海中不自觉地就会浮现出一个叫钟国殿的人,诞生于1988年的轻喜剧中国电视史可以算得上是沙雕剧界的吐槽始祖。以打开中国电视史也不知道是谁规定的开篇,吐槽电视剧中的各种套日本姐姐心动年下男Top10!平野紫耀再拿第一,永濑廉排第三姐弟恋现在越来越普遍,年下男也慢慢受欢迎了起来。年下男通常给人一种较稚嫩的感觉,但是也会有人觉得他们有着青春的魅力,他们傻傻的样子吸引了不少姐姐的爱慕。日前,日本With杂志举办票神剧预定!奈飞新剧上演密室逃脱,公寓内遭怪物追杀,期待值破表Netflix再放大招!之前,Netflix宣布将会制作7部原创韩剧,今年除王国2人间课堂保健老师安恩英已上线外,最令人期待的莫过于漫改剧SweetHome,而它终于要和大家见面了两大男神合体,朴宝剑傲娇脸嘟嘴靠孔刘肩上,粉丝尖叫好配韩国两大男神孔刘和朴宝剑合作的电影徐福即将上映,由于朴宝剑现在服兵役,无法看到双帅一起跑宣传,但今日一组他们合拍的照片曝光,让双方粉丝都超惊喜!在最新曝光的照片中,虽然都身穿西装但态度诚恳公众却不领情,渡部建道歉为何翻车?婚姻事业可否继续?时隔半年,渡部建终于开记者会公开道歉,承认各种丑闻,带着透明防飞沫口罩的他表情真挚,态度诚恳,两度鞠躬道歉。与多名女子保持婚外情关系今年6月初,日本男谐星渡部建被周刊文春曝出,在与乔治克鲁尼当奶爸,熟男崩溃我过的是60年代家庭主妇的生活乔治克鲁尼,全世界最性感的熟男之一,自从2014年与律师老婆艾莫阿拉慕丁结婚后,就越来越少出现在媒体前,尤其是在2017年喜得龙凤胎后,更是悠哉的享受着低调的家庭生活。最近,乔治克碧梨diss黑粉别说了,请不要从你的口中说出我漂亮的名字即使你不知道碧梨BillieEilish是谁,但你一定听过她的歌,那就是风靡全球BadGuy。作为一名有着自己独特风格的歌手,年仅19岁的碧梨凭借BadGuy一曲斩获第62届格莱美关宝慧回归TVB,贵族出生却被迫拍片,如今打算卖楼追寻电影梦在TVB台庆剧使徒行者3中饰演警务处助理处长MadamChan的关宝慧,虽然只是客串演出,但就凭着霸气一面令观众留下深刻印象。这也是关宝慧继2002年的无头东宫后,再次参演TVB剧举行现场颁奖礼,张国荣入围,主办方遭炮轰消费逝者叱咤乐坛流行榜颁奖典礼是香港乐坛非常重要的一个颁奖礼,由香港商业电台主办,每年一次,像张学友林忆莲黎明王菲郑秀文陈奕迅容祖儿张敬轩等都是颁奖礼的常客。日前,主办方表示2020年度叱