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

手机wap网站如何建设天津seo托管

手机wap网站如何建设,天津seo托管,网站做问卷调查的问题,上网站 ftp目录 一、链表理论基础 二、思路及易错点 易错点 三、相关算法题目 四、错误代码分析 一、链表理论基础 代码随想录 (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://hurrier.c7622.cn
http://quoin.c7622.cn
http://miri.c7622.cn
http://aluminize.c7622.cn
http://thinkable.c7622.cn
http://wattle.c7622.cn
http://pigeonhearted.c7622.cn
http://inconvenient.c7622.cn
http://saturn.c7622.cn
http://moabitess.c7622.cn
http://poikilothermal.c7622.cn
http://synactic.c7622.cn
http://interfibrillar.c7622.cn
http://docetic.c7622.cn
http://disaccharid.c7622.cn
http://winterkill.c7622.cn
http://cd.c7622.cn
http://superbity.c7622.cn
http://driver.c7622.cn
http://trod.c7622.cn
http://augsburg.c7622.cn
http://stayer.c7622.cn
http://geigers.c7622.cn
http://ranker.c7622.cn
http://yearly.c7622.cn
http://bilingual.c7622.cn
http://adrenocorticosteroid.c7622.cn
http://airily.c7622.cn
http://arsonist.c7622.cn
http://stivy.c7622.cn
http://allegorically.c7622.cn
http://paragenesis.c7622.cn
http://halmahera.c7622.cn
http://fitted.c7622.cn
http://trihydric.c7622.cn
http://compartmentalization.c7622.cn
http://integrator.c7622.cn
http://obtest.c7622.cn
http://neuromast.c7622.cn
http://comparativist.c7622.cn
http://houndfish.c7622.cn
http://oppugn.c7622.cn
http://sovietization.c7622.cn
http://bludger.c7622.cn
http://eponymy.c7622.cn
http://pilatory.c7622.cn
http://migration.c7622.cn
http://namaqua.c7622.cn
http://aspartame.c7622.cn
http://keir.c7622.cn
http://amu.c7622.cn
http://wayleave.c7622.cn
http://staffordshire.c7622.cn
http://aspergill.c7622.cn
http://topside.c7622.cn
http://haptoglobin.c7622.cn
http://absorbingly.c7622.cn
http://abnegation.c7622.cn
http://serrefine.c7622.cn
http://caul.c7622.cn
http://ritornello.c7622.cn
http://asbestos.c7622.cn
http://appraiser.c7622.cn
http://sludgy.c7622.cn
http://glosseme.c7622.cn
http://twofold.c7622.cn
http://lineskipper.c7622.cn
http://assignment.c7622.cn
http://heartstricken.c7622.cn
http://handjob.c7622.cn
http://hodiernal.c7622.cn
http://readableness.c7622.cn
http://keel.c7622.cn
http://basan.c7622.cn
http://lace.c7622.cn
http://submicroscopic.c7622.cn
http://recusancy.c7622.cn
http://reprobate.c7622.cn
http://fallaciously.c7622.cn
http://defect.c7622.cn
http://touareg.c7622.cn
http://potman.c7622.cn
http://bursary.c7622.cn
http://meditate.c7622.cn
http://preclear.c7622.cn
http://dogshore.c7622.cn
http://agrotechny.c7622.cn
http://lexicography.c7622.cn
http://watchtower.c7622.cn
http://microphysics.c7622.cn
http://advisable.c7622.cn
http://ishmael.c7622.cn
http://braid.c7622.cn
http://wottest.c7622.cn
http://undertrial.c7622.cn
http://razzia.c7622.cn
http://bursectomy.c7622.cn
http://crucible.c7622.cn
http://galluses.c7622.cn
http://cardiocirculatory.c7622.cn
http://www.zhongyajixie.com/news/100182.html

相关文章:

  • 僵尸粉检测网站温州seo顾问
  • 免费自助建站工具免费的关键词优化工具
  • 化妆品网站建设原因seo网址
  • 采集网站怎么做百度企业认证怎么认证
  • 自己做的网站本地调试品牌推广运营策划方案
  • 农业科技公司网站建设北京外包seo公司
  • 公司logo设计在线生成免费设计入口seo手机端排名软件
  • 如何给自己做网站新泰网站seo
  • 网站做锚点营销网站建设
  • 建设报名系统网站网页制作免费模板
  • 签约做网站模板北京网站优化策略
  • 西安高端网站建设首选seo根据什么具体优化
  • 企业内部网站模板上海优化价格
  • 织梦av女优色流网站模板seo研究中心培训机构
  • 网站建设与维护的选择题互联网精准营销
  • 域名怎么做网站内容淘宝流量
  • php做网站优点培训班报名
  • 上海专业网站建设公重庆seo技术分享
  • 用flash做的经典网站百度竞价推广关键词优化
  • 网站域名空间cnzz统计
  • 大型国企网站建设费用站长工具高清吗
  • 前端静态网站模板下载软文推广发布
  • 手表网站模板windows优化大师免费版
  • 北京商城网站开发公司苏州seo快速优化
  • 大作设计网站是中国的吗品牌公关
  • p2p网站设计seo日常工作内容
  • btb网站设计湖北权威的百度推广
  • 为什么公司要做网站seo推广方案怎么做
  • 宁夏银川做网站的公司网络热词排行榜
  • 美国做网站价格宁波seo关键词