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

河北网上注册公司流程网站seo的方法

河北网上注册公司流程,网站seo的方法,厨房装修效果图,网页设计制作是属于什么专业?前言 中等 √ tail,fir,sec三个指针迭代完成。 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。…

前言

中等 √ tail,fir,sec三个指针迭代完成。

题目

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

思路

fir指针指向第一个,sec指针指向第二个,tail指针指向已处理好的序列尾部。进入循环,尾部next指针指向sec,fir的next指针把sec的next位置存下,sec的next指针指向fir,更新tail、fir和sec位置。要考虑好所有边界情况。

我的题解

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode dummy(0);ListNode* tail = &dummy;ListNode* fir = head;ListNode* sec = fir;if (!fir || !fir->next){return head;}while (fir && sec->next && fir->next){sec = fir->next;tail->next = sec;fir->next = sec->next;sec->next = fir;tail = fir;fir = fir->next;}return dummy.next;}
};

官方题解

迭代与笔者一致,这里放一下递归的解法

可以通过递归的方式实现两两交换链表中的节点。

递归的终止条件是链表中没有节点,或者链表中只有一个节点,此时无法进行交换。

如果链表中至少有两个节点,则在两两交换链表中的节点之后,原始链表的头节点变成新的链表的第二个节点,原始链表的第二个节点变成新的链表的头节点。链表中的其余节点的两两交换可以递归地实现。在对链表中的其余节点递归地两两交换之后,更新节点之间的指针关系,即可完成整个链表的两两交换。

用 head 表示原始链表的头节点,新的链表的第二个节点,用 newHead 表示新的链表的头节点,原始链表的第二个节点,则原始链表中的其余节点的头节点是 newHead.next。令 head.next = swapPairs(newHead.next),表示将其余节点进行两两交换,交换后的新的头节点为 head 的下一个节点。然后令 newHead.next = head,即完成了所有节点的交换。最后返回新的链表的头节点 newHead。

class Solution {
public:ListNode* swapPairs(ListNode* head) {if (head == nullptr || head->next == nullptr) {return head;}ListNode* newHead = head->next;head->next = swapPairs(newHead->next);newHead->next = head;return newHead;}
};

心得

总是学不会怎么写一个好的递归,这方面的思维需要再培养。另外迭代也是,虽然做出来了但是不够它写的美观,问题抽象得不够好。

http://www.dtcms.com/wzjs/20209.html

相关文章:

  • 课件ppt模板免费下载网站如何免费做网站
  • 政府网站建设北京市第一百度 营销推广怎么操作
  • 做百度手机网站关键词排名yandex搜索引擎
  • 用自己电脑做服务器 网站吗seo是搜索引擎营销
  • 汉阴做网站网络公司名字
  • 石家庄做网站的公司线上推广引流渠道
  • 做门窗网站怎么做企业培训课程ppt
  • 网站建设运营方案台州网站优化公司
  • 做网站建设怎么找客户杭州seo博客
  • 广州网站建设模板制作怎么推广销售
  • 做的网站必须放在idc机房吗百度帐号注册
  • 免费空间备案独立站seo怎么做
  • 网站被降权的原因哈尔滨最新疫情通报
  • 怎么把自己做的网站弄到域名上百度推广客户端怎么登陆
  • 做网站的有哪些公司网络营销过程步骤
  • 福州网站网页设计新闻今天
  • 动漫毕业设计作品网站产品推广软文
  • 农村建设捐款网站抖音搜索seo排名优化
  • 现货做网站网站制作流程和方法
  • 群晖wordpress站点地址优化师的工作内容
  • vps网站建设国外域名购买
  • 移动端开发平台百合seo培训
  • 广州做网站信息aso优化技术
  • 网络营销策略有哪几种厦门关键词优化平台
  • 做网站默认城市优化大师win10
  • 套做网站百度商家
  • 通辽网站建设招聘中山疫情最新消息
  • 杭州网站建设交易seo搜索引擎是什么
  • 先做网站主页还是先上架宝贝大众网疫情最新消息
  • 手机app与手机网站的区别富阳网站seo价格