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

江都建设招标网站免费刷赞网站推广免费

江都建设招标网站,免费刷赞网站推广免费,上海网站建设选缘魁 -企查,用discuz做的门户网站文章目录力扣24.两两交换链表中的节点题目描述方法1:非递归方法2:递归力扣24.两两交换链表中的节点 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&…

文章目录

  • 力扣24.两两交换链表中的节点
    • 题目描述
    • 方法1:非递归
    • 方法2:递归

力扣24.两两交换链表中的节点

题目描述

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:

输入:head = []
输出:[]
示例 3:

输入:head = [1]
输出:[1]

提示:

链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100

方法1:非递归

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* swapPairs(struct ListNode* head){if(head==NULL||head->next==NULL) return head;//如果是空链表或者只有一个元素则直接返回struct ListNode *p=head,*t,*pre=NULL;if(p->next!=NULL) head=p->next;//直接指定最终的返回位置,即应当是原始第二个节点(不为空)while(p!=NULL){t=p->next->next;//记录后继节点的下一个位置if(pre!=NULL) pre->next=p->next;//将前驱节点接到后续节点上,防止断链pre=p;//将本节点标记为下一次的前驱节点p->next->next=p;//交换相邻节点,即让相邻节点的后继指针指向当前节点p->next=t;//当前节点的后继指针指向原后继节点的后继p=t;//更新当前节点的位置,准备进行下一次交换if(p!=NULL&&p->next==NULL) return head;//如果更新后只剩下单独一个节点了则不用再交换了,立即返回结果}return head;
}

方法2:递归

从第一个节点开始,要通过递归的方式寻找交换之后该节点的下一个节点,规律是:

  • 第1个节点的下一个节点是下一个节点的下一个节点,即第3个节点
  • 第2个节点的下一个节点是第1个节点
  • 以此类推

递归函数中其中一个重大的作用就是为它的上一级调用函数返回需要的节点作为上一级递归中的下一个节点,我们暂存这个节点,在需要结束时返回给上一级函数。

struct ListNode *p=head->next;

同时我们通过调用下一级递归函数的方式来期望获得当前节点交换后连接的下一个节点,注意一次调用的步长为2,即隔一个节点进行下一次调用:

head->next=swapPairs(head->next->next);

并且根据规律,本节点的前驱节点也应改成本节点的原后继节点,即上面暂存的节点P

p->next=head;

最终递归函数完整应写成如下形式:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* swapPairs(struct ListNode* head){if(head==NULL||head->next==NULL) return head;//如果节点为空或者只剩单一节点终止递归,返回struct ListNode *p=head->next;//记录当前节点的下一个节点head->next=swapPairs(head->next->next);p->next=head;return p;
}
http://www.jinmujx.cn/news/116057.html

相关文章:

  • h5网站建设哪家好网页制作软件有哪些
  • 自己制作奶油怎么做宁波seo外包代运营
  • 网络营销推广公司名字seo81
  • 邢台企业做网站哪儿好百度竞价推广方法
  • 宣讲家网站加强党的建设云盘搜索引擎入口
  • ps软件下载2022关键词优化的五个步骤
  • 深圳东门地铁站叫什么产品营销策划
  • 乐从网站制作百度推广教程视频教程
  • 怎么做一淘宝客网站吗广州seo网站多少钱
  • 可以做网站首页的图片素材网络营销课程个人感悟
  • 网站备案的用户名是什么seo免费优化工具
  • 网站动态图是怎么做的10条重大新闻
  • 什么叫网站开发友情链接平台站长资源
  • 佛山网站推广优化公司百度推广关键词怎么优化
  • dede网站名称不能保存网络营销的整体概念
  • 机械技术支持中山网站建设seo自学
  • wordpress证书安装海洋seo
  • asp做的手机网站关键词排名优化公司外包
  • 比格设计网站官网百度精准推广
  • 长沙找人做网站互联网金融营销案例
  • 网站的版面布局全球网站排名
  • 国内最有趣的网站疫情最新消息今天公布
  • 网站建设实训报告的内容怎么写被代运营骗了去哪投诉
  • 怎么做属于自己的领券网站关键词推广
  • 定制图片软件西安整站优化
  • 德阳网站建设长沙网络营销哪家平台专业
  • 百度广告推广平台优化推广公司哪家好
  • 电子商务网站开发类毕业论文付费推广方式有哪些
  • 恋爱ppt模板免费下载网站友情链接检查工具
  • 独立页面成网站通过百度问答官网