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

建设网站装配式建筑楼房wordpress文章不显示标题

建设网站装配式建筑楼房,wordpress文章不显示标题,深圳网站设计兴田德润官方网站,网站建设工【Leedcode】数据结构中链表必备的面试题(第三期) 文章目录【Leedcode】数据结构中链表必备的面试题(第三期)一、第一题1.题目2.思路3.源代码二、第二题1.题目2.思路(1)第一种情况:偶数个链表(2)第二种情况&#xff1a…

【Leedcode】数据结构中链表必备的面试题(第三期)


文章目录

  • 【Leedcode】数据结构中链表必备的面试题(第三期)
  • 一、第一题
    • 1.题目
    • 2.思路
    • 3.源代码
  • 二、第二题
    • 1.题目
    • 2.思路
      • (1)第一种情况:偶数个链表
      • (2)第二种情况:奇数个链表
    • 3.源代码
      • (1)链表的中间结点的实现
      • (2)反转链表的实现
      • (3)链表比较函数的实现
      • (4)整体源代码
  • 总结


一、第一题

1.题目

CM11 链表分割 如下(示例):

现有一链表的头指针ListNode*pHead,给一定值x,
编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 

在这里插入图片描述


2.思路

1.使用两个哨兵位的头结点lessheadgreathead,把小于4的连接到lesshead后面,大于4的链接到greathead后面;
2.再把小于4的最后一个连接到大于4的第一个:具体如下图


![在这里插入图片描述](https://img-blog.csdnimg.cn/ddf62b3dab8a4de7aea2d12a4549626d.png


注意:如下图!
在这里插入图片描述


3.源代码

代码如下(示例):

struct ListNode {int val;struct ListNode *next;
};
class Partition {
public:ListNode* partition(ListNode* pHead, int x) {struct ListNode* lessHead, *lessTail, *greaterHead, *greaterTail;lessHead = lessTail = (struct ListNode*)malloc(sizeof(struct ListNode));greaterHead = greaterTail = (struct ListNode*)malloc(sizeof(struct ListNode));lessTail->next = greaterTail->next = NULL;struct ListNode* cur = pHead;while (cur) {if (cur->val < x) {lessTail->next = cur;lessTail = lessTail->next;}else {greaterTail->next = cur;greaterTail = greaterTail->next;}cur = cur->next;}lessTail->next = greaterHead->next;greaterTail->next = NULL;struct ListNode* list = lessHead->next;free(lessHead);free(greaterHead);return list;}
};

二、第二题

1.题目

OR36 链表的回文结构 如下(示例):

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900

在这里插入图片描述


2.思路

(1)第一种情况:偶数个链表


在这里插入图片描述


(2)第二种情况:奇数个链表

在这里插入图片描述


3.源代码

(1)链表的中间结点的实现

  1. 链表的中间结点的实现 如下(示例):
struct ListNode
{int val;struct ListNode *next;
}
struct ListNode* middleNode(struct ListNode* head)
{struct ListNode* slow,*quick;slow=quick=head;while(quick && quick->next){slow= slow->next;quick= quick->next->next;}return slow;
}

(2)反转链表的实现

  1. 反转链表的实现 如下(示例):
struct ListNode 
{int val;struct ListNode *next;
};
struct ListNode* reverseList(struct ListNode* head)
{//第二种方法struct ListNode* newhead=NULL;struct ListNode* cur=head;while(cur){struct ListNode* next=cur->next;cur->next=newhead;newhead=cur;cur=next;}return newhead;
}

(3)链表比较函数的实现

代码如下(示例):

class PalindromeList {
public:bool chkPalindrome(ListNode* A) {struct ListNode* mid =middleNode(A);struct ListNode* rHead =reverseList(mid);struct ListNode* curA=A;struct ListNode* curR = rHead;while( curA && curR){if(curA -> val != curR ->val){return false;}else {curA=curA->next;curR =curR-> next;}}return true;}
};

(4)整体源代码

代码如下(示例):

struct ListNode 
{int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};
struct ListNode* middleNode(struct ListNode* head)
{struct ListNode* slow,*quick;slow=quick=head;while(quick && quick->next){slow= slow->next;quick= quick->next->next;}return slow;
}
struct ListNode* reverseList(struct ListNode* head)
{//第二种方法struct ListNode* newhead=NULL;struct ListNode* cur=head;while(cur){struct ListNode* next=cur->next;cur->next=newhead;newhead=cur;cur=next;}return newhead;}
class PalindromeList {
public:bool chkPalindrome(ListNode* A) {struct ListNode* mid =middleNode(A);struct ListNode* rHead =reverseList(mid);struct ListNode* curA=A;struct ListNode* curR = rHead;while( curA && curR){if(curA -> val != curR ->val){return false;}else {curA=curA->next;curR =curR-> next;}}return true;}
};

总结

以上就是今天要讲的内容,本文介绍数据结构中链表必备的面试题(第三期)
如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持!

在这里插入图片描述

http://www.yayakq.cn/news/807351/

相关文章:

  • 群晖网站建设处理错误500wordpress移除评论
  • 施工企业负责人郑州网站建设及优化
  • 网站添加锚点公司网站建设多少费用兴田德润在哪里
  • wordpress通过id获取分类名称杭州余杭区抖音seo质量高
  • 网站如何做企业电子宣传册正邦设计公司
  • 国外购物网站平台有哪些中国十大品牌网
  • 网站建设开票名称网络营销推广咨询收费标准
  • 南通网站定制方案seo赚钱项目
  • 山西网站制作平台海南旅游网页设计
  • 华蓥住房和城乡建设厅网站庆阳网站优化公司
  • 网站软件免费下载大全wordpress自定义内容插件
  • 网站不推广如何排名关键词英文
  • 国内建设地铁的公司网站nodejs网站开发实例
  • 自己如何做一个网站c 网站建设可视化实现
  • 网站的目的和意义南宁做自适应网站
  • 国内做视频的网站装修公司怎么找客源最有效
  • 那些网站是asp做的建设网站需要购买数据库吗
  • wordpress网站怎么设置关键词wordpress index
  • 营销网站建设多少钱hemi网站怎么做热图
  • 怎样用FW做网站的首页小程序diy制作平台
  • 如何找到网络公关公司网站优化与SEO区别
  • 南阳网站优化哪家好网站开发公司对比
  • 网站建设中 动画公司官网怎么弄
  • 沧州网站建设多少钱seo工作室合作
  • 动态手机网站怎么做商标网注册查询官网
  • 京东网站建设的意义石家庄网站建设工作室
  • 河北网站建设市面价新乡手机网站建设电话
  • 潍坊装饰网站建设酒店网站建设公司排名
  • 微管家里的微网站怎么建设济南大型网站建设
  • 黄金网站app软件下载安装免费不用备案的域名