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

有做数学题的网站吗社保网上服务大厅

有做数学题的网站吗,社保网上服务大厅,用dreamware做网站,低价的网站建设一、链表的回文结构 思路#xff1a; 找到链表的中间节点#xff0c;然后逆置链表的后半部分#xff0c;再一一遍历链表的前半部分和后半部分#xff0c;判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…一、链表的回文结构 思路 找到链表的中间节点然后逆置链表的后半部分再一一遍历链表的前半部分和后半部分判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分 遍历链表前半部分和后半部分 如果left和right指向的数据不相等就跳出循环返回false如果遍历到left或者right为NULL数据都相等那么链表具有回文结构返回true。 这里如果是奇数个节点 遍历结束后 class PalindromeList { public://找链表中间节点ListNode* Listmid(ListNode* phead){ListNode* fast, *slow;fastslowphead;while(fast fast-next){slowslow-next;fastfast-next;}return slow;}//逆置ListNode* reverse(ListNode* phead){ListNode* l1,*l2,*l3;l1NULL;l2phead;while(l2){l3l2-next;l2-nextl1;l1l2;l2l3;}return l1;}bool chkPalindrome(ListNode* A) {// write code here//找到链表中间节点ListNode* midListmid(A);//逆置后半部分ListNode* phead reverse(mid);//比较ListNode* left, *right;leftA;rightphead;while(right left){if(right-val!left-val){return false;}leftleft-next;rightright-next;}return true;} }; 二、相交链表 判断两个链表是否相交如果相交就返回相交节点如果链表不相交那就返回NULL 思路 先遍历两个链表记录两个链表的节点个数再同时遍历两个链表 让节点个数多的链表先往前走s链表的节点个数差同时遍历两个链表如果指向链表的指针相等就返回当前节点如果遍历链表结束后都没有相等的节点那就返回NULL。 typedef struct ListNode ListNode; struct ListNode* getIntersectionNode(struct ListNode* headA,struct ListNode* headB) {if (headA NULL) {return NULL;}if (headB NULL) {return NULL;}int sizeA 0, sizeB 0;ListNode *l1, *l2;l1 headA;l2 headB;while (l1) {sizeA;l1 l1-next;}while (l2) {sizeB;l2 l2-next;}ListNode* shortList headA;ListNode* longList headB;int s abs(sizeA - sizeB);if (sizeA sizeB) {shortList headB;longList headA;}while (s) {s--;longList longList-next;}while (longList shortList) {if (longList shortList) {return longList;}longList longList-next;shortList shortList-next;}return NULL; } 三、环形链表1 判断 链表中是否存在环如果存在就返回true如果不存在就返回false 思路快慢指针 定义两个指针fast和slow遍历链表fast每次向前走两步slow每次向前走一步如果链表存在环fast与slow指针一定会相遇如果遍历链表fast或者fast-next为NULL则链表不存在环。 根据题目所给示例来分析一下 首先定义两个指针 fast  slow fast向前走两步slow向前走一步 fast向前走两步slow向前走一步 fast向前走两步slow向前走一步 此时fast和slow相遇证明链表中存在环返回true。 如果链表不存在环结构遍历过程中fast或者fast-next指针会等于NULL将这个作为结束条件即可。 typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* fast, *slow;fastslowhead;while(fast fast-next){fastfast-next-next;slowslow-next;if(slow fast){return true;}}return false; } 四、环形链表2 上面只是让我们判断链表是否带环这道题让我们返回链表环的起始节点如果不存在环就返回NULL。 思路 使用快慢指针找到快慢指针的相遇节点再定义两个指针从相遇节点和链表头结点开始遍历两个指针相遇时的节点就是链表环的起始节点。 根据题目的示例来分析 先找到链表快慢指针的相遇节点 定义两个指针从链表头部和相遇节点开始遍历链表 遍历链表直到两个指针相遇 两个指针相遇此时指针指向的节点就是链表环的起始节点。 typedef struct ListNode ListNode; ListNode* hasCycle(struct ListNode *head) {ListNode* fast, *slow;fastslowhead;while(fast fast-next){fastfast-next-next;slowslow-next;if(slow fast){return slow;}}return NULL; } struct ListNode *detectCycle(struct ListNode *head) {//找到快慢指针相遇节点ListNode* poshasCycle(head);if(posNULL){return NULL;}//从头结点和相遇节点开始遍历ListNode* ptailhead;while(1){if(posptail){return pos;}pospos-next;ptailptail-next;} } 五、随机链表的复制 这里题目上提到了一个深拷贝 思路 先在原链表的基础上创建节点形成新的链表再给链表节点的random指针赋值最后断开新链表和原链表的连接即可。 深拷贝原链表 拷贝过后 给random指针赋值 断开新链表和原链表之前的连接 这样就深拷贝了原链表返回新链表的头节点即可。 typedef struct Node Node; // 创建节点 Node* BuyNode(int x) {Node* newnode (Node*)malloc(sizeof(Node));newnode-next newnode-random NULL;newnode-val x;return newnode; } // 深拷贝 void CopyList(Node** head) {Node* ptail *head;Node* next NULL;while (ptail) {next ptail-next;Node* newnode BuyNode(ptail-val);newnode-next next;ptail-next newnode;ptail next;} } void Connect(Node** head) {Node* ptail *head;Node* copy (*head)-next;while (ptail) {copy ptail-next;if (ptail-random)copy-random ptail-random-next;ptail copy-next;} } struct Node* copyRandomList(struct Node* head) {if (head NULL){return NULL;} // 深拷贝原链表CopyList(head);// 连接random指针Connect(head);// 断开链表Node* ptail head;Node* newhead head-next;Node* copy head-next;while (ptail-next-next) {ptailcopy-next;copy-next copy-next-next;copy copy-next;}return newhead; }
http://www.dnsts.com.cn/news/245530.html

相关文章:

  • 四川做网站设计哪家好饮食网站建设策划书
  • 网站开发技术一般需要什么语言梦幻西游源码论坛
  • 网站建设河北石家庄怎样写网站描述
  • 优化外贸网站高端购物网站
  • 长春网站优化策略怎么建小说网站
  • 浙江省建设培训中心网站首页ios注册开发者账号
  • 想做网站怎么做中国交通建设集团有限公司待遇
  • 织梦网站做瀑布流方便wordpress grace8
  • 龙文网站建设为食堂写个网站建设
  • 天猫优惠券网站怎么做的营销培训去哪个学校好
  • 使用iframe做网站企业网属于什么网
  • 中学加强校园网站建设关于学校网站建设
  • 代理网站备案表做lt行业的人让我登网站
  • 广州电子商城网站建设俄罗斯免费服务器
  • 行政事业单位网站建设建议宁波公司网站建设价格
  • 手机网站导航菜单广州地铁18号线
  • 杭州科技网站四方区企业型网站建设
  • c 做交易网站wordpress 自定义网址
  • 百度为何不收录你的网站产品页抖音带运营的执行老大
  • 怎么把自己做的网站放到网上网站开发需求文档怎么写
  • 南通网站开发招聘做网站的网站赚钱吗
  • 手机网站模板 phpwordpress 图片轮播
  • 网站案例英文网站怎么做优化步骤
  • 内部卷网站怎么做的wordpress 添加微博
  • 微信网站开发平台哪个网站有做彩平的材质贴图
  • 本地服务器怎么做网站门户网站设计
  • 微网站用手机可以做吗wordpress网站开发
  • 做网单哪个网站最好用贵州专业网站建设公司哪家好
  • 怎样设计网站或网页成都华阳有没有做网站的
  • 企业网站的主要功能板块wordpress开玩笑 呵