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

论网站建设的重要性网站优化费用报价明细

论网站建设的重要性,网站优化费用报价明细,梧州网站建设,百度网站下拉怎么做的图片: csdn 自定义位置合并 问题: 给两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中 下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点 的位置。 比如: 输入:list1 [1…

图片: csdnAlt

自定义位置合并

问题:

给两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。

请你将 list1 中 下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点

的位置。

比如:
输入:list1 = [1,2,3,4,5,6], a = 1, b = 3, list2 = [1,2,7,8]
输出:[1,1,2,7,8,5,6]
解释:我们删除 list1 中下标为 1和 3 的两个之间的节点,并将 list2 接在该位置。
如图中用红线所连接的即是最后所求。
在这里插入图片描述

代码:
/**
Definition for singly-linked list.
struct ListNode {
int val;
struct ListNode *next;
};
** /

struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2)
{struct ListNode* head=list1;for(int i=0;i<a-1;i++){
head=head->next;
}struct ListNode* q=head->next;for(int i=0;i<b-a+1;i++){
q=q->next;
}head->next=list2;while(list2->next!=NULL){
list2=list2->next;
}list2->next=q;return list1;}

分析:

for(int i=0;i<a-1;i++)  
{
head=head->next;
}

a-1 : 因为要是a 的话,指针就会指到被删除的那个元素身上,所以要写成a-1;

用一个for 循环来进行指针的移动。

因为 a-1 为0,所以条件不成立,直接跳出循环。

创建一个新的指针q = head->next ; 记录一下,被删除的第一个结点。

后面再进行

 for(int i=0;i<b-a+1;i++)q=q->next;

可以找到 被删除的最后一个结点的下一个结点。用q指针指向。

head->next=list2;

因为现在head指针指向就是第一个位置的结点,再进行赋值把list2赋给head->next; 所以现在就成功的把list2 链表连接上了。

while(list2->next!=NULL)
{
list2=list2->next;
}

接下来就是要连接list2链表的尾部了。

首先要能找到尾部的指针,所以用了一个while循环 ,来找到 list2 的最后一个结点。

所以

list2->next=q;

即可以成功的连接上list1 后面的结点。

有序合并

问题:

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的
两个链表的所有节点组成的。

比如 现在有两个链表,如下所示

思路分析:
两个链表,有序合并。
首先新创建一个链表结点,作为头指针。

两个链表指针来比较其数据域的大小,要是相等就随便取一个结点的数据域尾插在新创的指针后面,取哪个,哪个指针指向下一个。
再进行比较。
如果不等,就把那个小的连接在新建链表的后面,然后它进行后移操作。
再进行比较。
最后当有一个链表的指针走到了最后一个位置,也就是为空了,再把另一个不为空的链表直接连接在新建的链表后面即可。

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode*list3=(struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode*p3=list3;   // 简化一下struct ListNode*head=list3;while(list1!=NULL&&list2!=NULL){if (list1->val<list2->val){p3->next=list1;list1=list1->next;p3=p3->next;p3->next=NULL;  //预防野指针出现}else{p3->next=list2;list2=list2->next;p3=p3->next;p3->next=NULL;  //预防野指针出现}}
if (list1==NULL)
{p3->next=list2;}else{p3->next=list1;}return  head->next;
}
http://www.zhongyajixie.com/news/47797.html

相关文章:

  • 大连的网页设计公司重庆seo网络推广关键词
  • 做设计最好的参考网站潍坊seo建站
  • 什么网站做优化最好?百度页面
  • 网站建设常见的问题链接生成二维码
  • 国内做网站好的公司关键词搜索推广排行榜
  • 广西新农村建设工作专题网站找资源
  • 国外优秀网站模板二级域名查询入口
  • 宁波做网站首推荣盛网络百度地图优化排名方法
  • 做特殊任务的网站成人用品哪里进货好
  • 无极网站设计投百度做广告效果怎么样
  • 个人网站空间购买注册域名
  • 陕西省住房和城乡建设厅官网查询seo价格是多少
  • 最专业的企业营销型网站建设公司百姓网推广怎么收费标准
  • wordpress建站云盘百度seo排名培训优化
  • 绍兴网站建设做网站杭州网站建设 seo
  • 郑州做网站优化地址沧州网站优化
  • 品牌网站建设熊掌号整合营销是什么
  • 新手做电影网站好免费网站制作平台
  • 网页游戏源码购买微信seo排名优化软件
  • 一个域名可以做几个网站吗怎么在腾讯地图上添加自己的店铺
  • 手机网站开发要哪些人美区下载的app怎么更新
  • 普宁做男科检查长江网站L怎么自己搭建网站
  • 建设网站公司 昆山网络推广软文
  • 加强网站基础建设seo快速收录快速排名
  • 北京手机网站建设外包软文写作范文500字
  • 河南网站开发做网店自己怎么去推广
  • 社保个人网站百度用户服务中心官网电话
  • 服饰东莞网站建设线上营销工具
  • 做公司的网站付的钱怎么入账百度首页广告多少钱
  • 网站建设没有签定合同东莞产品网络推广