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

盐城北京网站建设网址收录平台

盐城北京网站建设,网址收录平台,搭建网络平台的计划书,个人网页成品一.两数相加 1.1题目描述 1.2题解思路 定义两个指针l1,l2依次遍历两个链表,用变量add存储l1加l2的值,将add的个位数取出来充当新节点的值,然后将add的个位数删去,即add /10,循环此操作。 重点分析: 1.跟…

一.两数相加

1.1题目描述

1.2题解思路

定义两个指针l1,l2依次遍历两个链表,用变量add存储l1加l2的值,将add的个位数取出来充当新节点的值,然后将add的个位数删去,即add /=10,循环此操作。

重点分析:

1.跟归并排序中合并两个有序数组类似,当两个链表并不是一样长,其中一个链表并没有遍历完!!!

2.当两个链表都遍历完之后,如果add的值为1,则需要再增加一个节点,它的值为1.

1.3.题解代码

class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int add = 0;ListNode* newhead = new ListNode(-1);//创建虚拟头结点ListNode* cur = newhead;while(l1 && l2){add += l1->val + l2->val;ListNode* tmp = new ListNode(add%10);//将个位存进去add /= 10;cur->next = tmp;l1 = l1->next;l2 = l2->next; cur = cur->next;}while(l1){add += l1->val;ListNode* tmp = new ListNode(add%10);add /= 10;cur->next = tmp;l1 = l1->next;cur = cur->next;}while(l2){add += l2->val;ListNode* tmp = new ListNode(add%10);add /= 10;cur->next = tmp;l2 = l2->next; cur = cur->next;}//判断边界情况if(add == 1){ListNode* tmp = new ListNode(1);cur->next = tmp;cur = cur->next;}return newhead->next;}
};

二.两两交换链表中的节点

2.1题目描述

2.2题解思路

首先添加虚拟头结点,遍历这个链表,定义四个指针,prev,cur,next,nnext,模拟实现两个相邻链表翻转,然后更新prev,cur,next,nnext,循环此操作

重点分析:

1.当给的链表为空或者只有一个数据时,直接返回。

2.循环结束条件,当是偶数个数字时,cur!=nullptr,当是奇数个数字时,next != nullptr。

2.3题解代码

class Solution {
public:ListNode* swapPairs(ListNode* head) {if(!head || !head->next) return head;ListNode* newhead = new ListNode(-1);//虚拟头节点newhead->next = head;ListNode* prev = newhead,*cur = prev->next,*next = cur->next,*nnext = next->next;while(cur && next){prev->next = next;next->next = cur;cur->next = nnext;prev = cur;cur = nnext;if(cur )next = cur->next;if(next) nnext = next->next;}return newhead->next;}
};

三.重排链表

3.1题目描述

3.2题解思路

1.找到链表的中间节点(快慢双指针)

2.将第二个链表逆序(头插法)

注意区分开curnext与cur->next,tmpnext与tmp->next

3.合并两个链表

注意需要把第一个链表的最后一个节点的next置空

3.3题解代码

class Solution {
public:void reorderList(ListNode* head) {if(!head->next || !head->next->next) return;        ListNode* newhead = new ListNode(-1);//添加虚拟头结点            //找到链表的中间节点(快慢双指针)    ListNode* q1 = head,*q2 = head;while( q2->next && q2->next->next){q1 = q1->next;q2 = q2->next->next;}//反转q1后面的节点(头插法)ListNode* tmp = new ListNode(-2);ListNode* cur = q1->next,*curnext = cur->next,*tmpnext = tmp->next;while(cur){cout<<cur->val;//头插tmp->next = cur;cur->next = tmpnext;//更新指针cur = curnext;if(cur) curnext = cur->next;tmpnext = tmp->next;}//合并两个链表q1->next = nullptr;//注意!!!ListNode* cur1 = head,*cur2 = tmp->next;cur = newhead;while(cur1 || cur2){if(cur1){cur->next = cur1;cur1 = cur1->next;cur = cur->next;cur->next = nullptr;}if(cur2){cur->next = cur2;cur2 = cur2->next;cur = cur->next;cur->next = nullptr;}}}
};

http://www.cadmedia.cn/news/4269.html

相关文章:

  • 什么公司做的网站好网络营销推广渠道有哪些
  • 原来做网站后来跑国外了网络推广员要怎么做
  • 中力建设网站宁波seo外包公司
  • 建设网站就选用什么样的公司app营销策略有哪些
  • 零基础学建网站精准营销及推广
  • wordpress 海淘主题下载重庆seo教程
  • 今日北京疫情通报新手学seo
  • 做外贸免费的网站有哪些郑州疫情最新动态
  • 论述政府网站的建设趋势百度官网推广平台电话
  • 苏中建设网站正规网络公司关键词排名优化
  • 网站用户管理系统网页制作的软件
  • 关于加强网站建设十大洗脑广告
  • wordpress夜间模式插件南京seo外包
  • 东台网站建设服务商互联网推广的好处
  • 深圳营销型网站建设公司哪家好河北疫情最新情况
  • 息烽县住房和城乡建设局网站石家庄seo优化
  • 做苗木生意上什么网站无锡seo网络推广
  • 用jquery做网站好吗沈阳百度seo关键词排名优化软件
  • 可以在自己的电脑上做网站吗网站的宣传推广方式
  • 个人主页在哪里找市场seo是什么意思
  • 龙海市城乡规划建设局网站电商运营培训班多少钱
  • 建设网站b2c哪家好如何在百度上做推广
  • 沈阳模板建站公司推荐网站关键词优化方案
  • 网站的营销推广方案及预算中国四大软件外包公司
  • 辽宁省企业信息系统百度seo关键词怎么做
  • 广州网站建设-信科分公司广州网页推广公司
  • 温州网站设计公司天津seo公司
  • 郑州建立网站百度竞价投放
  • 贵阳网站建设zbcskj站内推广方式有哪些
  • 海口市住房和城乡建设局网站市场推广方法