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

怎么给网站上传附件网络营销软文范文

怎么给网站上传附件,网络营销软文范文,上海网站推广策划,微信网站的链接标志图片如何做目录 一、合并两个有序链表 二、链表分割 三、链表的回文结构 u解题的总体思路#xff1a; 合并两个有序链表#xff1a;首先创建新链表的头节点#xff08;哨兵位#xff1a;本质上是占位子#xff09;#xff0c;为了减少一些判断情况#xff0c;简化操作。然后我们…目录 一、合并两个有序链表 二、链表分割 三、链表的回文结构 u解题的总体思路  合并两个有序链表首先创建新链表的头节点哨兵位本质上是占位子为了减少一些判断情况简化操作。然后我们再创建俩个指针分别指针两个单链表的头然后遍历比较将两个指针指向节点的最小值接在新链表的后面。 链表分割创建两个新链表lessHead和greatHead一个存储原链表中小于x的节点一个存储其他的节点我们按顺序遍历原链表当循环结束后我们将存储小于x的节点的新链表lessHead接在另一个新链表greatHead的前面。 链表的回文结构我们利用前面OJ题中的方法找中间节点快慢指针反转链表三指针法解这道题我们找到中间节点后将中间节点后面的节点的指向反转然后我们遍历这个反转后的链表与原链表比较看是否满足条件。 一、合并两个有序链表 步骤1 我们新建一个链表初始化NewHead,NewTail三个指针都指向头节点NewList然后我们创建指针l1l2分别指向list1和list2. 步骤2当l1和l2指向的节点都不为NULL,循环遍历节点将最小值的节点接在新链表的后面然后NewTail指向新链表的最后的节点位置上。 步骤3 我们将l1和l2指向链表节点不为NULL的接在NewTail的next域上就完成了合并操作。  /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {ListNode *l1 list1,*l2 list2; ListNode *NewList (ListNode*)malloc(sizeof(ListNode)); //创建头节点ListNode * NewHead, *NewTail; NewHead NewTail NewList; //初始化俩个指针都指向新链表//l1 和 l2 当前节点都不为NULL遍历while(l1 l2){if(l1-val l2-val){NewTail-next l1;l1 l1-next; //l1往后走}else{NewTail-next l2;l2 l2-next; //l2往后走}NewTail NewTail-next; //更新NewTail 指向当前新插入的节点}//两者有一个为NULL(不可能同时为NULL)if(l1!NULL){NewTail-nextl1;}else{NewTail-nextl2;}return NewList-next; } 二、链表分割 步骤1 我们首先创建两个新的链表lessHead存储节点值 x的节点greatHead存储节点值 x的节点。 步骤2 我们循环原链表将每个节点按照判断接在各自的新链表中。 步骤3 我们将lessHead的lessTail的next域接在greatHead的next前面这样我们就实现了两个新链表的拼接.(注意最后要将greatTail的next域置为NULL防止死循环) /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ #include functional class Partition { public:ListNode* partition(ListNode* pHead, int x) {ListNode *pcur pHead;//创建俩个头节点分别存储小节点和大节点ListNode *lessHead (ListNode*)malloc(sizeof(ListNode));ListNode *lessTail lessHead;ListNode *greatHead (ListNode*)malloc(sizeof(ListNode));ListNode *greatTail greatHead;//循环遍历原链表中的每个节点while(pcur){if(pcur-val x){lessTail-next pcur;lessTail lessTail-next; //尾指针后移当新插入的节点 }else{greatTail-next pcur;greatTail greatTail-next; //尾节点后移到新插入的节点}pcur pcur-next;}//拼接两个新链表将lessHead接入到greatHead后面lessTail-next greatHead-next;greatTail-next NULL; //将最后的节点next域置为NULLreturn lessHead-next;} }; 三、链表的回文结构 步骤1 我们首先写出找中间节点的函数middleNode和反转链表的函数reverseList找到中间节点然后将中间节点后面的链表反转。这两个函数在上个文章中详细讲解过这里不再重点讲述 步骤2 反转以mid为头节点的链表。  从这里可以看出我们的链表变成了俩个部分然后我们遍历这两个链表比较各自节点的值是否相等相等说明我们原链表就是回文链表。 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ class PalindromeList { public://反转链表ListNode* reverseList(ListNode* head){ListNode*n1,*n2,*n3;n1 NULL;n2 head;if(n2NULL){return NULL;}n3 n2-next;while(n2){n2-next n1;n1 n2;n2 n3;if(n3)n3 n3-next;}return n1;}//找中间节点ListNode* middleNode(ListNode* head){if(headNULL){return NULL;}ListNode *slow,*fast;slow fast head;while(fast fast-next){slow slow-next; //slow走一步fast fast-next-next; //fast走两步}return slow;}bool chkPalindrome(ListNode* A) {ListNode*phead A;ListNode*mid middleNode(A); //找中间节点ListNode*pcur reverseList(mid); //反转以中间节点为头的后面的节点while(pcur){if(pcur-val ! phead-val){return false;}pcur pcur-next;phead phead-next;}//循环正常结束返回truereturn true;} };
http://www.dnsts.com.cn/news/266971.html

相关文章:

  • 做网站需要交印花税骨干专业群建设任务书网站
  • 海南论坛论坛网站建设网站建设创业
  • 网站营销公司简介中山网站建设的企业
  • 网站代码建设+实例wordpress seo是什么
  • wordpress开发门户网站html静态页面的制作
  • 网站建设域名服务器购买网络架构如何写
  • 在线旅游网站建设方案浏览器的网站通知怎么做
  • 成都专业网站推广公司如何网站里做照片
  • 简约大气网站设计欣赏洛阳有建社网站的吗
  • 电子商务网站建设与管理网站制作广告
  • 大港网站建设app首页设计模板
  • 网站微信支付怎么做wordpress xml文件分割器
  • 南通网站建设.扬中网站建设价位
  • 网站wordpress是什么意思wordpress博客主题自媒体
  • 浪漫免费表白网站运动网页设计
  • 媒体网站开发做网站撘框架
  • 《网站开发实践》 实训报告创业平台
  • 青岛市建设网站小熊代刷推广网站
  • 网站建站免费张家界网站建设方案
  • 网站建设数据库实验心得陕西新站seo
  • 网站制作加盟内蒙古生产建设兵团四师三十四团知青网站
  • 烟台高新区规划国土建设局网站郑州网站建设方案优化
  • 网站建设部工作职能有什么做网站好用的软件
  • 专业做食材网站城阳天河小学网站建设
  • 佛山市和城乡建设局网站职业教育培训机构排名前十
  • 新乡网站建设哪家公司好会展中心网站平台建设方案
  • 一级a做爰片免费网站 新闻网站建设知识文章
  • 网站建设初期推广方式微商网站怎么做
  • 内容营销pptseo产品是什么意思
  • wordpress网站科学主题网站的作用有哪些