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

建立购物网站青岛制作网站哪家公司好

建立购物网站,青岛制作网站哪家公司好,鄠邑建站 网站建设,怎么做公司网站需要什么科目目录 1. 单链表相关练习题1.1 移除链表元素1.2 反转链表1.3 链表的中间结点1.4 链表的倒数第k个结点1.5 合并两个有序链表1.6 链表分割1.7 链表的回文结构1.8 相交链表1.9 判断一个链表中是否有环1.10 寻找环状链表相遇点1.11 链表的深度拷贝 1. 单链表相关练习题 注#xff1… 目录 1. 单链表相关练习题1.1 移除链表元素1.2 反转链表1.3 链表的中间结点1.4 链表的倒数第k个结点1.5 合并两个有序链表1.6 链表分割1.7 链表的回文结构1.8 相交链表1.9 判断一个链表中是否有环1.10 寻找环状链表相遇点1.11 链表的深度拷贝 1. 单链表相关练习题 注单链表结构上存在一定缺陷所以链表相关的题目一般都针对与单链表。 1.1 移除链表元素 题目要求 题目信息 头节点head移除值val 题目链接 移除链表元素 方法顺序处理法 思路分析链表结构与结点所处的位置是否为空链表结点是否为头结点分情况依次处理。 过程演示 struct ListNode* removeElements4(struct ListNode* head, int val) {struct ListNode* pre NULL;struct ListNode* cur head;while (cur){if (cur-val val){//头删if (cur head){head head-next;free(cur);cur head;}else//中间删{pre-next cur-next;free(cur);cur pre-next;}}else{pre cur;cur cur-next;}}return head; }1.2 反转链表 题目要求 题目链接 反转链表 过程演示 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* pre NULL;struct ListNode* mid head;struct ListNode* cur NULL;if(head){cur head-next;}while(mid){mid-next pre;pre mid;mid cur;if(cur){cur cur-next;}}return pre;}1.3 链表的中间结点 题目要求 题目链接 链表的中间结点 过程演示快慢指针法 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* fast head;struct ListNode* slow head;while(fast ! NULL fast-next ! NULL){fast fast-next-next;slow slow-next;}return slow; }1.4 链表的倒数第k个结点 题目要求 题目链接 倒数第k个结点 过程演示 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* cur pListHead;struct ListNode* pre pListHead;while(cur k--){cur cur-next;}if(k 0){pre NULL;}while(cur){pre pre-next;cur cur-next;}return pre; }1.5 合并两个有序链表 题目要求 题目链接 合并两个链表 struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {struct ListNode* newhead NULL;struct ListNode* cur NULL;struct ListNode* newnode NULL;if(list1 NULL)return list2;if(list2 NULL)return list1;while(list1 ! NULL list2 ! NULL){if(list1-val list2-val){newnode list1;list1 list1-next;}else{newnode list2;list2 list2-next;}if(newhead NULL){newhead newnode;newnode-next NULL;cur newhead;}else{//在遍历过程中list1 或 list2 会等于 NULLcur-next newnode;if(newnode ! NULL){newnode-next NULL;cur cur-next;}}}//有一个链表本就为空if(list1){cur-next list1;}if(list2){cur-next list2;}return newhead; }1.6 链表分割 题目要求 题目链接 合并两个链表 ListNode* BuyNewNode(int val){ListNode* newnode (ListNode*)malloc(sizeof(ListNode));newnode-val val;newnode-next nullptr;return newnode;}ListNode* partition(ListNode* pHead, int x) {ListNode* newhead1 nullptr;ListNode* end1 nullptr;ListNode* newhead2 nullptr;ListNode* end2 nullptr;ListNode* cur pHead;while(cur){if(cur-val x){if(newhead1 nullptr){newhead1 BuyNewNode(cur-val);end1 newhead1; }else {end1-next BuyNewNode(cur-val);end1 end1-next;}}else {if(newhead2 nullptr){newhead2 BuyNewNode(cur-val);end2 newhead2; }else {end2-next BuyNewNode(cur-val);end2 end2-next;}}cur cur-next;}if(newhead1 nullptr){newhead1 newhead2;}else {end1-next newhead2;}return newhead1;}1.7 链表的回文结构 题目要求 题目链接 回文串 ListNode* reverse(ListNode* head){ListNode* pre nullptr;ListNode* mid head;ListNode* cur head-next;while (mid){mid-next pre;pre mid;mid cur;if (cur){cur cur-next;}}return pre;}bool chkPalindrome(ListNode* A){//找相同逆置//逐点比较//回文结构存在奇数个结点//获取中间结点ListNode* fast A;ListNode* slow A;while(fast fast-next){fast fast-next-next;if(fast){slow slow-next;}}//表1ListNode* newhead2 slow-next;//表2slow-next nullptr;ListNode* newhead1 reverse(A);if(fast){newhead1 newhead1-next;}while (newhead1 newhead2 newhead1-val newhead2-val){newhead1 newhead1-next;newhead2 newhead2-next;}if (newhead1 nullptr newhead2 nullptr){return true;}return false;}1.8 相交链表 题目要求 题目链接 相交链表 void swap(struct ListNode** node1, struct ListNode** node2) {struct ListNode* tmp *node1;*node1 *node2;*node2 tmp; }struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode* short_list1 headA;struct ListNode* short_list2 headA;struct ListNode* long_list1 headB;struct ListNode* long_list2 headB;while(short_list1 long_list1){short_list1 short_list1-next;long_list1 long_list1-next;}if(short_list1){swap(short_list1, long_list1);swap(short_list2, long_list2);}while(long_list1){long_list1 long_list1-next;long_list2 long_list2-next;}//while((short_list2 long_list2) || short_list2 ! long_list2)while(short_list2 long_list2 short_list2 ! long_list2){long_list2 long_list2-next;short_list2 short_list2-next;}return short_list2; }1.9 判断一个链表中是否有环 题目要求 题目链接 判断是否有环 //逻辑步骤存疑 bool hasCycle(struct ListNode *head) {struct ListNode* fast head;struct ListNode* slow head;//err: while(fast slow ! fast)while(fast fast-next){fast fast-next-next;slow slow-next;if(slow fast){return true;}}return false; }1.10 寻找环状链表相遇点 题目要求 题目链接 寻找环状链表相遇点 思路依靠结论一个结点从起始点一个结点从相遇点快慢指针相遇点以同速行走一次走一步当他们再一次初次相遇时此相遇结点即为入环点。 struct ListNode *detectCycle(struct ListNode *head) {//快慢指针确定首次相遇点//起始点与相遇点出发同速移动最后的相遇的点即为环的进入点struct ListNode* fast head;struct ListNode* slow head;//遍历寻找相遇点while(fast fast-next){fast fast-next-next;slow slow-next;if(fast slow){break;}}//判断是否为环状链表if(fast NULL || fast-next NULL){return NULL;}slow head;while(fast ! slow){fast fast-next;slow slow-next;}return fast; }1.11 链表的深度拷贝 题目要求 题目链接 链表的深度拷贝 //思路 //生成拷贝结点 //调整拷贝结点的指针 //还原原链表链接拷贝结点 struct Node* BuyNewNode(int val) {struct Node* newnode (struct Node*)malloc(sizeof(struct Node));newnode-val val;newnode-next NULL;newnode-random NULL;return newnode; }struct Node* copyRandomList(struct Node* head) {struct Node* node1 head;//判断是否为空链表if(head NULL){return head;}//创建新节点while (node1){struct Node* newnode BuyNewNode(node1-val);newnode-next node1-next;node1-next newnode;node1 node1-next-next;}//调整新节点的随机指针struct Node* node2 head-next;node1 head;while (node2){if (node1-random){node2-random node1-random-next;}node1 node1-next-next;if (node2-next){node2 node2-next-next;}else{node2 node2-next;}}//还原链表链接新链表node1 head;node2 head-next;struct Node* newhead head-next;while (node1){node1-next node1-next-next;if (node2-next){node2-next node2-next-next;}node1 node1-next;node2 node2-next;}return newhead; }
http://www.dnsts.com.cn/news/193781.html

相关文章:

  • 武陟住房和城乡建设局网站国家域名注册
  • 百度站长平台快速收录怎么弄vs2008 网站消息弹窗怎么做
  • 定制开发网站学历提升文案
  • 云信智联商丘网站建设wordpress 侧栏主题
  • 成都网站建设3六六网站规划与开发技术专业
  • 网站建设找丿金手指排名做淘宝要网站?
  • 怎样发布自己的网站张家界直播视频
  • 社区网站免费制作怎么查网站注册信息
  • 兴义市住房城乡建设局网站seo顾问服务咨询
  • 网站建设 论坛平面设计去哪里找工作
  • 门户网站建设实施方案做外贸要做什么网站
  • 电子杂志网站建设做影视外包的网站
  • 网页版面布局设计步骤网站怎么做好优化
  • 7黄页网站建设张家港做网站收费标准
  • 公司网站建设办法软件开发商是什么意思
  • 无锡市建设银行总行网站上海建筑设计院地址
  • 想招代理去什么网站中国网站建设总部在哪里
  • 网站开发软件平台有哪些wordpress 照片墙插件
  • 网站开发需要学数学吗免费网站建设找哪家
  • 淘宝内部券网站建设wordpress 2.5
  • 珠海网站seo郑州中原区网站建设
  • 公司网站开发费计入wordpress评论贴图
  • 建网站公司销售南阳做网站哪家好
  • 自己的网站怎么推广文件什么上传到wordpress
  • 在网上做国际快递淘宝网站全国最好的广告公司加盟
  • 网站的设计过程杭州会做网站
  • 银川制作网站wordpress 社区 插件
  • 网站界面用什么做石家庄新闻综合频道节目回看
  • 呼市网站seo优化工资提成怎么算做词做曲网站
  • 深圳有哪些做网站公司好山东做网站公司有哪些