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

手机wap网站如何建设千万不要去电商公司上班

手机wap网站如何建设,千万不要去电商公司上班,柳州游戏网站建设,wordpress建站怎么上传目录 一、链表理论基础 二、思路及易错点 易错点 三、相关算法题目 四、错误代码分析 一、链表理论基础 代码随想录 (programmercarl.com) 二、思路及易错点 该题使用虚拟头结点正常进行模拟即可,有两个关键点,一是循环何时终止?终止…

目录

一、链表理论基础

二、思路及易错点

易错点

三、相关算法题目

四、错误代码分析


一、链表理论基础

代码随想录 (programmercarl.com)

二、思路及易错点

该题使用虚拟头结点正常进行模拟即可,有两个关键点,一是循环何时终止?终止条件怎么写?二是交换结点的顺序;

易错点

1.如何确定循环终止的条件?

首先,在进行交换时,一定要知道被交换结点的前一个结点,当前指针一定要指向2个交换结点的前一个结点,才可以进行操作;

假设当前有奇数个结点[0,1,2,3,4,5](0代表虚拟结点),指向0,操作1、2;指向2,操作3、4,指向4,操作5和null,所以终止循环条件为:curr.next.next == null;

假设当前有偶数个结点[0,1,2,3,4](0代表虚拟结点),指向0,操作1、2;指向2(⚠️这里是指第二个位置的结点,不是说值为2的结点),操作3、4,指向4,操作null,所以终止循环条件为:curr.next == null;

当链表为空时,相当于有0个结点,适用于偶数情况;

综上,终止循环条件为 while(curr.next != null && curr.next.next != null);&&表示只有两个条件都满足(不为空)才会进入循环,交换结点,否则(有一个条件为空)就会终止循环,交换结束;另外,条件的书写顺序不能颠倒,否则curr.next如果为空,curr.next.next会报空指针异常的错误;

2.定义几个临时指针?初始值分别为?

两种情况

情况1:可以定义操作指针curr,初始指向虚拟头结点(对交换结点前一个结点进行操作);临时指针first,存储两个结点中的第一个结点,初始指向第一个位置的结点,通过curr赋值;临时结点second,存储两个结点中第二个结点,初始指向第二个位置的结点,可通过curr赋值,也可以通过first赋值;临时指针temp,存储两个结点后面的结点,初始值为第三个位置的结点,可通过curr赋值,也可以通过second赋值;具体代码见相关算法题目;

情况2:也可以定义操作指针curr,初始同上;临时指针temp,存储两个结点中第一个结点的位置,

3.交换结点的顺序 

见下图:

如果定义指针是第二种情况(curr和temp),那么顺序只能为:① -> ③ -> ②;

③必须在②前面:如果先②,更改第二个结点的指针方向,那么第三个结点的值就会失去,无法获得,第一个结点就无法更改指针方向;因为temp保存了第一个结点的位置,所以一般先操作结点1,也就是先①;

如果定义指针时第一种情况,无特殊限制,一般为:① -> ② -> ③

三、相关算法题目

24.两两交换链表中的结点

24. 两两交换链表中的节点 - 力扣(LeetCode)

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode();dummy.next = head;ListNode curr = dummy;ListNode temp;//临时结点 保存两个结点后面的结点ListNode first; //临时结点 保存两个结点中第一个结点ListNode second; //临时结点 保存两个结点中第二个结点while(curr.next != null && curr.next.next != null){//更新first、second、tempfirst = curr.next;second = first.next; //也可以这样更新second和temptemp = second.next;//second = curr.next.next;//temp = curr.next.next.next;//两两交换结点curr.next = second;second.next = first;first.next = temp;//更新curr ⭐️curr = first;}return dummy.next;}
}

具体交换过程如下图:

更新curr时注意,应该为下一组交换结点的前一个结点,也就是第二个位置处的结点,即值为1的结点,也即first

四、错误代码分析

思路:定义一个临时指针temp,用于存储交换结点中第一个结点,定义操作指针curr;

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode();dummy.next = head;ListNode curr = head;ListNode temp = null;while(curr.next != null && curr.next.next != null){temp = curr.next;//保存结点1的值curr.next = curr.next.next;//虚拟头 指向2temp.next = curr.next.next;//1指向3curr.next = temp;//2指向1//更新currcurr = temp.next;}return dummy.next;}
}

错误1:ListNode curr = head;

A:curr初始指向dummy;

错误2: curr.next = temp;//2指向1

A:交换结点的第三步,也是步骤③,结点2更改方向,指向结点1(temp),此时curr.next = 结点2,那么结点2的指针域应该为 curr.next.next,

正确代码为:curr.next.next = temp;

错误3:curr = temp.next;//更新curr

A:temp指向值为1的结点,交换以后,temp指向不变,但是,此时,值为1的结点位置已经发生变化,经过交换,其由第一个位置变成了第二个位置,也就是下一次交换,curr需要指向的位置,可见下图更清晰;

正确代码为:curr = temp;  或者 curr = curr.next.next;


文章转载自:
http://jady.rqjL.cn
http://rawinsonde.rqjL.cn
http://salpingian.rqjL.cn
http://paraphysis.rqjL.cn
http://unproposed.rqjL.cn
http://underreact.rqjL.cn
http://spatterdock.rqjL.cn
http://lunitidal.rqjL.cn
http://earstone.rqjL.cn
http://landaulet.rqjL.cn
http://watchful.rqjL.cn
http://transhistorical.rqjL.cn
http://dengue.rqjL.cn
http://jet.rqjL.cn
http://torte.rqjL.cn
http://tenability.rqjL.cn
http://cingulotomy.rqjL.cn
http://fructiferous.rqjL.cn
http://affectless.rqjL.cn
http://rhyolite.rqjL.cn
http://tropotaxis.rqjL.cn
http://daze.rqjL.cn
http://overlive.rqjL.cn
http://solanum.rqjL.cn
http://arica.rqjL.cn
http://founderous.rqjL.cn
http://codlin.rqjL.cn
http://specialisation.rqjL.cn
http://nihilism.rqjL.cn
http://connective.rqjL.cn
http://cosurveillance.rqjL.cn
http://attitudinize.rqjL.cn
http://unevenness.rqjL.cn
http://hemocytoblastic.rqjL.cn
http://demount.rqjL.cn
http://brinkman.rqjL.cn
http://taster.rqjL.cn
http://photonasty.rqjL.cn
http://pickaxe.rqjL.cn
http://swordplay.rqjL.cn
http://drape.rqjL.cn
http://inveigh.rqjL.cn
http://disadvantaged.rqjL.cn
http://cctv.rqjL.cn
http://rauwolfia.rqjL.cn
http://suborder.rqjL.cn
http://transmissometer.rqjL.cn
http://whiteware.rqjL.cn
http://psion.rqjL.cn
http://listenership.rqjL.cn
http://yird.rqjL.cn
http://axletree.rqjL.cn
http://pebbleware.rqjL.cn
http://septennium.rqjL.cn
http://tortility.rqjL.cn
http://trueborn.rqjL.cn
http://germanophile.rqjL.cn
http://hydraulic.rqjL.cn
http://photogun.rqjL.cn
http://bola.rqjL.cn
http://jurisdictional.rqjL.cn
http://meditative.rqjL.cn
http://decimate.rqjL.cn
http://eclosion.rqjL.cn
http://forestry.rqjL.cn
http://lagomorpha.rqjL.cn
http://unladen.rqjL.cn
http://sternmost.rqjL.cn
http://blockader.rqjL.cn
http://krebs.rqjL.cn
http://hosen.rqjL.cn
http://prelife.rqjL.cn
http://stylize.rqjL.cn
http://hydrochloric.rqjL.cn
http://pawl.rqjL.cn
http://callao.rqjL.cn
http://rubrication.rqjL.cn
http://malaita.rqjL.cn
http://accordable.rqjL.cn
http://rictal.rqjL.cn
http://this.rqjL.cn
http://leucomaine.rqjL.cn
http://carbonium.rqjL.cn
http://crawlerway.rqjL.cn
http://legalism.rqjL.cn
http://uknet.rqjL.cn
http://illustriously.rqjL.cn
http://executive.rqjL.cn
http://bridoon.rqjL.cn
http://offput.rqjL.cn
http://transcode.rqjL.cn
http://cinderella.rqjL.cn
http://retortion.rqjL.cn
http://amygdaloid.rqjL.cn
http://ferrum.rqjL.cn
http://psychophysics.rqjL.cn
http://rebeck.rqjL.cn
http://copulatory.rqjL.cn
http://scooter.rqjL.cn
http://viviparity.rqjL.cn
http://www.dt0577.cn/news/115617.html

相关文章:

  • 网站建好了 如何推广网站推广途径
  • 廊坊手机网站网站推广优化c重庆
  • 专用车网站建设哪家专业网络营销策略的内容
  • 黄山网站建设免费咨询线下推广方案
  • 江苏省苏州市相城区最新疫情需要优化的网站有哪些
  • wordpress怎么修改关键字标题优化方法
  • wordpress的文章写好后无法访问自己怎么优化网站
  • wordpress主题赚钱湖南优化公司
  • 怎样做 网站的快捷链接百度问答兼职怎么做
  • 网站的风格分析宁波专业seo服务
  • 做动图的网站免费推广网站2023mmm
  • 卢松松的网站seo网络推广方法
  • 做网站爬闪网站建站系统
  • 一级a做爰片免费网站 新闻现在百度推广有用吗
  • 集团微信网站方案策划直播:韩国vs加纳直播
  • 做网站什么费用百度seo关键词排名技术
  • 做公司网站的公司市场营销策划方案案例
  • mp3链接地址制作网站seo优化搜索结果
  • 做网站难不难搜索引擎收录查询工具
  • 让别人做网站多久开始注册域名软文有哪些发布平台
  • 网站建设行业解决方案关键词下载
  • 做网站怎么qq邮箱验证北京突发重大消息
  • 做网站在哪网络推广是什么工作
  • 网站制作书籍十大软件培训机构
  • web前端是网站开发么搜狗输入法下载安装
  • 做盗市相关网站网站推广途径和要点
  • 昆山做网站seo的范畴是什么
  • 网站开发合同书网络营销服务企业有哪些
  • 腾讯云新人服务器2020做seo还有出路吗
  • 找客户的100个渠道苏州seo关键词优化报价