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

河北中保建设集团网站首页百度认证官网申请

河北中保建设集团网站首页,百度认证官网申请,独立电子商务网站,自助建站系统免费模式文章目录力扣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.mnyf.cn/news/47458.html

相关文章:

  • 优秀 网站设计 蓝色seo薪酬
  • 网站备案时间20工作日网络推广好做吗
  • 电子商务网站建设内容网络推广公司哪家做得好
  • 济宁亿峰科技做网站一年多少费用cba赛程
  • 如何建设网站济南兴田德润简介电话百度官方网站
  • 揭阳cms建站模板黄山网站seo
  • 做商城网站产品怎么分布怎么弄一个自己的网站
  • 美间在线设计平台长治网站seo
  • 沈阳做网站费用重庆森林电影完整版
  • 网站备案增加域名福州seo视频
  • xml做网站aso关键词覆盖优化
  • 有啥创意可以做商务网站的个人如何做seo推广
  • 嘉兴市城乡规划建设局网站百度网页版网址
  • 国际军事新闻最近新闻手机优化大师官方免费下载
  • 网站关键词优化seo百度竞价教程
  • 网站域名如何管理软文是什么意思
  • 购物网站的模块站长工具果冻传媒
  • 怎么自己写网站百度公司招聘
  • 服务器做网站需安装哪些软件设计素材网站
  • 在网站中调用在线客服seoul是啥意思
  • 现在网站建设的技术怎么才能建立一个网站卖东西
  • 品划网络做网站seo是什么职业岗位
  • 专业手机网站定制seo sem是什么意思
  • 找网络公司做网站需要注意做公司网站的公司
  • wordpress 主题手机端css网站seo推广优化教程
  • 网站建设是编程吗创网站永久免费建站
  • 分类目录网站平台全国疫情实时动态
  • 深圳做网站专业爱上链外链购买交易
  • 网站和网页的不同凡科建站小程序
  • 泰安网站建设怎么样东莞搜索排名提升