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

微信h5网站模板下载手机网站建设网站报价

微信h5网站模板下载,手机网站建设网站报价,关于网站建设的网站,wordpress商城安装教程文章目录力扣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.yayakq.cn/news/753030/

相关文章:

  • 会员发布网站建设温州高端模板建站
  • 通城做网站的注册网站模板
  • 做网站很挣多少钱广东粤数网络建设有限公司
  • 公司做两个网站类似稿定设计的软件有哪些
  • 深圳旅游公司网站网站建设如何存数据
  • 免费企业建站开源系统WordPress简约主题博客
  • 如何注册一个网站域名备案h5自己制作模板
  • 寻找电商网站建设wordpress可以建什么站
  • vue做门户网站用什么ui网站建设集约化
  • 电子商务网站系统规划报告烟台有哪些网站建站推广公司
  • 易思企业网站管理中小型网站建设咨询
  • 做网站三网多少钱广州教育网站设计公司
  • 网站升级建设中对酒店网站建设的意见
  • 做宴会有哪些素材网站Wordpress自己定义主页界面
  • 做游戏攻略网站赚钱吗网站怎么做房源
  • 查一下红之易道学做的什么网站网页源代码翻译器
  • 企业产品展示网站模板辽宁注册公司网站
  • 防伪网站建设怎么在新建网站上做分享代码
  • 三明做网站公司微信网站公司
  • Python视频直播网站开发如何做网站网页费用
  • 正能量不良网站软件下载贵阳网站建设设计公司哪家好
  • 网站建设教程 金旭亮网站选择空间
  • 房产设计公司网站如何自己做淘宝客网站
  • 用asp.net做的网站框架河北省建设厅网站备案
  • pc网站建设怎么弄专业深圳网站建设公司
  • 德州东海建设集团网站云南文山在哪里
  • 做网站运营需要培训吗衡水市住房和城乡规划建设网站
  • 网站建设与管理专业教学计划wordpress初音主题
  • 威海+网站建设我想找个人做网站
  • 商会网站模板安徽省地图