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

网站建设课程ppt模板申报课题所需的网站怎么做

网站建设课程ppt模板,申报课题所需的网站怎么做,哪些网站能够免费做公考题,网站建设与网页设计总结一、反转链表 给你单链表的头节点 head #xff0c;请你反转链表#xff0c;并返回反转后的链表。 力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 思路一#xff1a;翻转单链表指针方向 这里解释一下三个指针的作用#xff1a; n1#xff1… 一、反转链表 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 思路一翻转单链表指针方向 这里解释一下三个指针的作用 n1记录上一个节点如果是第一个就指向空 n2记录此节点的位置 n3记录下一个节点的位置让翻转后能找到下一个节点防止丢失指针的地址 /** 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* n1 NULL,*n2 head,*n3 n2-next;//结束条件while(n2){//迭代过程n2-next n1;n1 n2;n2 n3;if(n3)n3 n3-next;}return n1; } 思路二:头插法 取原链表节点头插到新链表 /** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* reverseList(struct ListNode* head) {struct ListNode* cur head;struct ListNode* newHead NULL;while(cur){struct ListNode* next cur-next;//头插cur-next newHead;newHead cur;cur next;}return newHead; } 二、链表的中间结点 给你单链表的头结点 head 请你找出并返回链表的中间结点。 如果有两个中间结点则返回第二个中间结点。 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 思路一单指针法 时间复杂度O(N*1.5)其中 N 是给定链表的结点数目。 空间复杂度O(1)只需要常数空间存放变量和指针。 我们可以对链表进行两次遍历。第一次遍历时我们统计链表中的元素个数 N第二次遍历时我们遍历到第 N/2 个元素链表的首节点为第 0 个元素时将该元素返回即可。 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* middleNode(struct ListNode* head) {int n 0;struct ListNode*cur head;while(cur ! NULL){n;cur cur-next;}int k 0;cur head;while(k n/2){k;cur cur-next;}return cur; } 思路二快慢指针法 时间复杂度O(N)其中 N 是给定链表的结点数目。 空间复杂度O(1)只需要常数空间存放 slow 和 fast 两个指针。 我们可以优化思路一用两个指针 slow 与 fast 一起遍历链表。slow 一次走一步fast 一次走两步。那么当 fast 到达链表的末尾时slow 必然位于中间。 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head,*fast head;while(fast fast-next){slow slow-next;fast fast-next-next;}return slow; } 三、合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  力扣LeetCode官网 - 全球极客挚爱的技术成长平台 思路一迭代法: 定义一个头指针和一个尾指针从小到大依次尾插直到一个链表为空时结束 /*** 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* head NULL, *tail NULL;while(l1 ! NULL l2 ! NULL){if(l1-val l2-val){//尾插if(tail NULL){head tail l1;}else{tail-next l1;tail tail-next;}l1 l1-next;}else{if(tail NULL){head tail l2;}else{tail-next l2;tail tail-next;}l2 l2-next;}}if(l1)tail-next l1;if(l2)tail-next l2;return head; } 优化一: 先确定头结点然后再循环判断val大小尾插 struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {if(l1 NULL) return l2;if(l2 NULL)return l1;struct ListNode* head NULL, *tail NULL;//先确定头节点if(l1-val l2-val){head tail l1;l1 l1-next;}else{head tail l2;l2 l2-next;}while(l1 l2){//尾插if(l1-val l2-val){ tail-next l1;l1 l1-next;}else{tail-next l2;l2 l2-next;}tail tail-next;}if(l1)tail-next l1;if(l2)tail-next l2;return head; }优化二: 设置一个哨兵位的头节点然后再去尾插。 /*** 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* head NULL, *tail NULL;//哨兵位的头节点head tail (struct ListNode*)malloc(sizeof(struct ListNode));while(l1 l2){//尾插if(l1-val l2-val){ tail-next l1;l1 l1-next;}else{tail-next l2;l2 l2-next;}tail tail-next;}if(l1)tail-next l1;if(l2)tail-next l2;struct ListNode* first head-next;free(head);return first; }思路二递归法 这是题解中大佬的一个解法以迭代的思路写递归尤为惊人 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){/*if判断1.如果l1为空返回l22.如果l2为空返回l13.如果l1的值小于l2比较l1的next值和l2并把值赋给l1的下一个返回l14.反之比较l1和l2的next值并把值赋给l2的下一个返回l2*/if (l1 NULL) {return l2;} else if (l2 NULL) {return l1;} else if (l1-val l2-val) {l1-next mergeTwoLists(l1-next, l2);return l1;} else {l2-next mergeTwoLists(l1, l2-next);return l2;} } 因为有缓冲区的存在C语言在操作文件的时候需要做刷新缓冲区或者在文件操作结束的时候关闭文件。 如果不做可能导致读写文件的问题。 今天就先到这了 看到这里了还不给博主扣个 ⛳️ 点赞☀️收藏 ⭐️ 关注 你们的点赞就是博主更新最大的动力 有问题可以评论或者私信!
http://www.zqtcl.cn/news/374497/

相关文章:

  • 网站建设公司的服务特点seo实战密码电子书
  • 网站开发保密协议范本北京市建设工程信息网查询
  • 怎样跟网站做优化呢wordpress实现新闻列表
  • 济南手机网站定制费用wordpress安装文档下载
  • 麻涌镇网站仿做郑州做网页的公司
  • 做那个网站中山免备案网站建设
  • 软路由系统如何做网站全网营销式网站
  • 中国建设网官方网站视觉网站建设
  • 苏州乡村旅游网站建设策划书.docincapsula wordpress
  • 百度收录自适应网站滨海做网站哪家公司好
  • 东莞网站排名优化公司福田在线官网
  • 清湖网站建设天猫开店流程及费用2023
  • 邵阳建设网站公司网站建设构架
  • 怎样做网站卖网站网络营销概念
  • 怎样做网站能百度能搜到设计网站公司哪里好
  • 网站收缩栏专业定制网站公司
  • 烟台网站建设方案托管无锡网站制作企业
  • 网站网页是怎么做的用什么做网站 优化
  • 数据网站怎么做的网站开发的开题报告引言
  • 苏州专业网站制作设计做网站上海
  • 做网站可以用中文域名备案嘛山东省住房和城乡城乡建设厅网站
  • 网站建设推广多少钱站长工具seo综合查询关键词
  • 分类信息网站平台的推广做网站的花费
  • 还原wordpress站点地址恢复网站都要备案吗
  • 如何建立营销性企业网站论文如何修改wordpress
  • 全网营销销售郑州seo网站管理
  • dw怎么做网站首页邯郸网站建设品牌加盟
  • 辽宁省建筑工程造价信息网深圳市seo点击排名软件价格
  • 网站建设宗旨是指建设中英文网站
  • 浙江网站建设价格低东莞网站建设推广多少钱