当前位置: 首页 > news >正文

深圳大型论坛网站建设深圳软件定制开发

深圳大型论坛网站建设,深圳软件定制开发,windows优化大师手机版,九江做网站哪家便宜目录 2. 两数相加 19. 删除链表的倒数第 N 个结点 21. 合并两个有序链表 23. 合并 K 个升序链表 24. 两两交换链表中的节点 2. 两数相加 https://leetcode.cn/problems/add-two-numbers/ public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//head是cur链表头节点…目录 2. 两数相加 19. 删除链表的倒数第 N 个结点 21. 合并两个有序链表 23. 合并 K 个升序链表 24. 两两交换链表中的节点 2. 两数相加 https://leetcode.cn/problems/add-two-numbers/ public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//head是cur链表头节点cur用于记录相加和的链表ListNode head new ListNode();ListNode cur head;//进位标志int flag 0;//两个用于相加的链表都走到null结束while(l1!null || l2!null){int l1Val l1null ? 0 : l1.val;int l2Val l2null ? 0 : l2.val;//计算和int sum l1Vall2Valflag;//新建节点加入cur链表中cur.next new ListNode(sum%10);//判断是否需要进位if(sum10){flag1;}else {flag0;}//判断两个用于相加的链表是否走到null没到的才继续走if(l1!null){l1 l1.next;}if(l2!null){l2 l2.next;}//cur链表也向后移动cur cur.next;}//走到这里代表两个链表已经遍历完毕//但是可能最后一次相加也产生了进位因此在这里要判断if(flag 1){cur.next new ListNode(1);}//头节点是空值返回头节点的下一节点return head.next;} 19. 删除链表的倒数第 N 个结点 https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ public ListNode removeNthFromEnd(ListNode head, int n) {//创建快慢指针两个指针的next为headListNode fast new ListNode();ListNode slow new ListNode();fast.next head;slow.next head;//记录慢指针的头节点用于返回ListNode root slow;//快指针先走n步for (int in;i0;i--){fast fast.next;//处理n大于链表长度的情况if(fast null){return null;}}//依次移动快慢指针直到快指针的next为null//此时代表慢指针到达要删除的元素的前一位值while (fast.next ! null){fast fast.next;slow slow.next;}//删除下一元素slow.next slow.next.next;//返回return root.next;} 21. 合并两个有序链表 https://leetcode.cn/problems/merge-two-sorted-lists/description/ public ListNode mergeTwoLists(ListNode list1, ListNode list2) {//创建头节点和一个用于移动的节点curListNode head new ListNode(0);ListNode cur head;//边移动边比较节点的值并将比较结果赋值直到有一个链表走完while(list1 ! null list2 ! null){if(list1.val list2.val){cur.next list1;list1 list1.next;}else{cur.next list2;list2 list2.next;}cur cur.next;}//判断是哪个链表走完了把另一个链表在尾部续上if(list1 null){cur.next list2;}if(list2 null){cur.next list1;}//返回记录的headreturn head.next;} 23. 合并 K 个升序链表 https://leetcode.cn/problems/merge-k-sorted-lists/description/ public ListNode mergeKLists(ListNode[] lists) {//建立链表ListNode root null;//不断将链表元素两两合并for (ListNode list : lists) {root mergeTwoLists(root, list);}//返回链表return root;}public ListNode mergeTwoLists(ListNode list1, ListNode list2) {//创建头节点和一个用于移动的节点curListNode head new ListNode(0);ListNode cur head;//边移动边比较节点的值并将比较结果赋值直到有一个链表走完while(list1 ! null list2 ! null){if(list1.val list2.val){cur.next list1;list1 list1.next;}else{cur.next list2;list2 list2.next;}cur cur.next;}//判断是哪个链表走完了把另一个链表在尾部续上if(list1 null){cur.next list2;}if(list2 null){cur.next list1;}//返回记录的headreturn head.next;} 24. 两两交换链表中的节点 https://leetcode.cn/problems/swap-nodes-in-pairs/ public ListNode swapPairs(ListNode head) {//基本思路就是站在前一个节点(后续简称0节点)向后望两个节点。//并对这两个节点做顺序调换之后0节点向后移动//创建移动的节点指针这个节点指向head这个就是一开始的0节点ListNode cur new ListNode();cur.next head;//记录头节点地址用于返回ListNode root cur;while(true){//没有后续节点的情况if(cur.next null){break;}//仍存在两个后续节点的情况if(cur.next.next ! null){//记录下一次需要调整顺序的节点ListNode temp2 cur.next.next.next;//调整顺序ListNode temp1 cur.next;cur.next cur.next.next;cur cur.next;cur.next temp1;//将节点移动到下一次调整的0节点处cur cur.next;cur.next temp2;}else{//只剩一个节点的情况break;}}//代码运行到这代表0节点之后已经没有节点或只剩一个节点//返回记录的头节点return root.next;}
http://www.hkea.cn/news/14325716/

相关文章:

  • 北京常用网站isite企业建站系统
  • 体育直播网站制作开发做企业网站比较好的公司
  • 阿里云网站空间申请企业发布招聘信息免费的网站
  • 做网站按页面收费企业网站的作用和目的
  • 陕西网站建设报价石家庄论坛建站模板
  • 网站产品页如何做优化网站建设 厦门
  • 每年网站备案抽查做餐饮网站建设
  • 四川建设网网站咸宁响应式网站建设价格
  • 网站内链怎么布局廊坊电子商务网站建设
  • 网站开发就业前景怎么样无锡网站建设推广
  • 网站的flash1网站建设的目标是什么意思
  • 免费网站建设合同书池州网站建设全包
  • 门户网站制作模板计算机网站建设策划书
  • 网站备案 互联网信息查询网站外链怎么做
  • 南山网站开发在线设计软件网站
  • 众筹网站建设广告项目网站开发
  • 可以做puzzle的网站广告设计毕业设计
  • 怎么用图片做网站背景图建设个人网银网站
  • 众筹网站建设公司wordpress 位置定位
  • 网站模板源码下载网深圳网站建设公司官网
  • 卖域名的网站企业网站和信息化建设
  • 运营网站销售队伍建设与管理济阳网站建设
  • 网站建设需要的企业学习做网站的
  • 爱站网影视排行榜网站的关键词排名怎么做
  • 阿里云网站建设方案书填写wordpress商城主题付费
  • 网站描述怎样写网站开发工作分解结构的树形图
  • 哪些调查网站可以做问卷赚钱网站建站平台排行榜
  • 做网站大流量广州 网站设计公司排名
  • 怎么做网站的关键词库天津市网站制作公司
  • 视频 怎么做网站wordpress使用自己的模板