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

福州企业网站建站系统电商网站是获取流量

福州企业网站建站系统,电商网站是获取流量,国内最最早做虚拟货币的网站,广告公司的经营范围有哪些大家好我是苏麟 , 今天聊一聊链表反转拓展问题 . 反转链表拓展问题 1.指定区间反转 描述 : 给你单链表的头指针 head 和两个整数 left 和 right #xff0c;其中 left right 。请你反转从位置 left 到位置 right 的链表节点#xff0c;返回 反转后的链表 。 题目…大家好我是苏麟 , 今天聊一聊链表反转拓展问题 .  反转链表拓展问题 1.指定区间反转 描述 :  给你单链表的头指针 head 和两个整数 left 和 right 其中 left right 。请你反转从位置 left 到位置 right 的链表节点返回 反转后的链表 。 题目 : LeetCode 92.反转链表 :  92. 反转链表 II   牛客 BM2 链表内指定区间反转 :  分析 :  这里的处理方式也有多种甚至给个名字都有点困难干脆就分别叫穿针引线法和头插法吧。穿针引线本质上就是不带有节点的方式来实现反转而头插法本质上就是带头结点的反转。 头插法 这个方法的缺点是: 如果 left 和 right 的区域很大恰好是链表的头节点和尾节点时找到left 和 right 需要遍历一次反转它们之间的链表还需要遍历一次虽然总的时间复杂度为 O(N)但遍历了链表 2次p不可以只遍历一次呢? 答案是可以的。我们依然画图进行说明我们仍然以方法一的序列为例进行说明。 反转的整体思想是在需要反转的区间里每遍历到一个节点让这个新节点来到反转部分的起始位置。 下面的图展示了整个流程。 这个过程就是前面的带虚拟结点的插入操作每走一步都要考虑各种指针怎么指既要将结点摘下来接到对应的位置上还要保证后续结点能够找到请读者务必画图看一看想一想到底该怎么调整。 代码如下 : /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {public ListNode reverseBetween(ListNode head, int left, int right) {ListNode dummyNode new ListNode(-1);dummyNode.next head;ListNode pre dummyNode;for (int i 0; i left - 1; i) {pre pre.next;}ListNode cur pre.next;ListNode next;for (int i 0; i right - left; i) {next cur.next;cur.next next.next;next.next pre.next;pre.next next;}return dummyNode.next;} } 2.单链表加一 描述 :  给定一个用单链表表示的整数然后把这个整数加一。 题目 : LeetCode  66.加一 : 66. 加一 LeetCode 369.给单链表加一 : 369. 给单链表加一 牛客 NC189 给单链表加一 : 分析 :  我们先看一下加法的计算过程: 计算是从低位开始的而链表是从高位开始的所以要处理就必须反转过来此时可以使用栈也可以使用链表反转来实现。 基于栈实现的思路不算复杂先把题目给出的链表遍历放到栈中然后从栈中弹出栈顶数字 digit加的时候再考虑一下进位的情况就ok了加完之后根据是否大于0决定视为下一次要进位 .import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param head ListNode类 * return ListNode类*/public ListNode plusOne (ListNode head) {// write code here/**把数字压入栈中*/StackInteger s new Stack();while(head!null){s.push(head.val);head head.next;}ListNode d new ListNode(-100);ListNode p d;//carry代表进位int carry 0;//x代表要加的1int x 1;while(!s.empty() || carry 1){int y s.empty() ? 0 : s.pop() ;int num carry x y;carry num 10 ? 1 : 0;num num 10 ? num-10 : num;//头插ListNode temp new ListNode(num);temp.next p.next;p.next temp;x 0;}return d.next;} } 基于链表反转实现 如果这里不使用栈使用链表反转来实现该怎么做呢?很显然我们先将原始链表反转这方面完成加1和进位等处理完成之后再次反转。本实现作为一个作业请读者完成。 这期就到这里 , 下一关见!
http://www.w-s-a.com/news/518461/

相关文章:

  • o2o网站建设代理商微信公众号开发文档
  • 网站设计课程总结关于网站备案的公告
  • 网站建设与运营意义到哪查找网站域名
  • 网站及单位网站建设情况眉县住房和城市建设局网站
  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app