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

正规网站开发公司免费seo排名网站

正规网站开发公司,免费seo排名网站,网站怎么做用密码,wordpress排除首页显示这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目: 2.思路  思路1:建立一个newHead,取一个节点进行头插。具体做法如下! 建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取…

这里写目录标题

  • 反转链表
  • 合并两个有序链表
  • 分割链表

反转链表

1、题目:
1
1
2.思路
 思路1:建立一个newHead,取一个节点进行头插。具体做法如下!
1
建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取一个节点下来进行头插,那么,要取的下一个节点的地址找不到,因此定义n1,n2,n1用来往下拿结点进行头插,n2预备下一次要的节点 ,代码如下!!!

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* reverseList(struct ListNode* head) {if(head == NULL){return NULL;}struct ListNode* newHead = NULL;//n1为向下取得插入的节点struct ListNode* n1 = head;//n2是给n1准备的节点struct ListNode* n2 = head->next;while(n1){n1->next = newHead;newHead = n1;n1 = n2;//当n2为NULL时,n2没有取得节点了if(n2){n2 = n2->next;}}return newHead;
}

 思路2:把指针翻转,把指针反转的意思是,把存节点的地址交换,定义三个指针n1,n2,n3,n1 = NULL,n2 = head,n3 = head->next,n2为第一个节点翻转,n2->next = n1,n2里面原来存的地址找不到,因此要n3存下一个节点的地址,这样这个题就可以反转了!!!
1

struct ListNode* reverseList(struct ListNode* head) {if(head == NULL){return NULL;}struct ListNode* n1 = NULL;struct ListNode* n2 = head;struct ListNode* n3 = head->next;while(n2){n2->next = n1;n1 = n2;n2 = n3;if(n3){n3 = n3->next;}}return n1;
}

合并两个有序链表

1、题目:
1
2、思路:
  这个题建立一个新链表,取小的数尾插即可,这儿有一些技巧,可以建立一个头结点,直接尾插,这样就省去了考虑newHead为NULL的情况,这个方法,在一些题中有妙用!!!``

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {if(l1==NULL){return l2;}if(l2==NULL){return l1;}//处理这个,建立一个头节点,把为NULL的一种可能性去掉struct ListNode* tmp = (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* tail= tmp;while(l1&&l2){if(l1->val<l2->val){tail->next = l1;tail = l1;l1 = l1->next;}else{tail->next = l2;tail = l2;l2 = l2->next;}}if(l1){tail->next = l1;}if(l2){tail->next = l2;}return tmp->next;
}

下面是一个正常的做法!!!

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {if(l1 ==NULL){return l2;}if(l2 == NULL){return l1;}struct ListNode* newHead,*tail;newHead  = NULL;while(l1&&l2){if(l1->val<l2->val){if(newHead == NULL){newHead = tail = l1;}else{tail->next = l1;tail = l1;}l1 = l1->next;}else{if(newHead == NULL){newHead = tail = l2;}else{tail->next = l2;tail = l2;}l2 = l2->next;}}if(l1){tail->next = l1;}if(l2){tail->next = l2;}return newHead;
}

分割链表

1、题目:
1
2、思路:
 建立两个链表,一个是<x的链表,一个是>=x的链表,最后把这两个链表组合起来,返回头即可

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*///建立两个链表
//一个小于x
//一个大于等于x
struct ListNode* partition(struct ListNode* head, int x){/*  if(head == NULL){return NULL;}*/struct ListNode* litterHead = ( struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* litterTail = litterHead;struct ListNode* biggerHead = ( struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* biggerTail = biggerHead;struct ListNode* cur = head;while(cur){if(cur->val<x){litterTail->next =cur;litterTail = cur;cur = cur->next;}else{biggerTail->next = cur;biggerTail = cur;cur = cur->next;}}biggerTail->next = NULL;litterTail->next = biggerHead->next;return litterHead->next;
}

完结!!!

http://www.shuangfujiaoyu.com/news/27443.html

相关文章:

  • tp5做企业网站今日最新国内新闻重大事件
  • 做网站哪中国万网域名注册服务内容
  • 做网站要学些什么条件宁波seo搜索平台推广专业
  • 网站开发安装环境谷歌google
  • 深圳城乡建设委员会网站百度下载安装2021最新版
  • seo网站推广公司网址搜索域名查询
  • 成都网站建设公司官网营销自动化工具
  • wordpress中文标签云插件下载泰州网站排名seo
  • 研究政府网站建设的意义东莞seo搜索
  • 珠海公司网站建设东莞seo顾问
  • 西安网站开发公司有哪家域名注册商有哪些
  • 山东专业网站解决方案制作nba今日最新消息
  • 东莞排名seo网站关键词优化百度竞价代理商
  • 如何申请自己的网站兰州网络推广关键词优化
  • 网站建设制作费 税前扣除吗登封网络推广公司
  • 本网站仅支持ie浏览器网站模板哪里好
  • 网站优化自己可以做吗客户管理软件哪个好用
  • wordpress建设购物网站百度竞价推广怎么做
  • 东莞浩智专业网站建设哪家好最新网站查询工具
  • 怎么做打赏看视频的网站网络seo首页
  • 网站建设 ur建站邯郸网站seo
  • 哪个网站可以做java项目扬州seo博客
  • 重庆服装网站建设地址网络营销优秀案例
  • 中国江西网官方网站理发美发培训学校
  • 哈尔滨城乡建设网站如何制作一个宣传网页
  • 移动路由器做网站服务器武汉seo管理
  • 河南如何建网站要什么条件seo教程网站优化
  • 石家庄的电商网站建设2022年seo还值得做吗
  • wordpress主題很慢湖南seo服务电话
  • 做外贸生意哪个网站好电商运营自学全套教程