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

网站建设需要多久制作网页教程

网站建设需要多久,制作网页教程,钦州教育论坛网站建设,租车网站建设方案剑指 Offer(第2版)面试题 18:删除链表的节点 剑指 Offer(第2版)面试题 18:删除链表的节点题目一:在 O(1) 时间删除链表结点题目二:删除链表中重复的节点 剑指 Offer(第2版…

剑指 Offer(第2版)面试题 18:删除链表的节点

  • 剑指 Offer(第2版)面试题 18:删除链表的节点
    • 题目一:在 O(1) 时间删除链表结点
    • 题目二:删除链表中重复的节点

剑指 Offer(第2版)面试题 18:删除链表的节点

题目一:在 O(1) 时间删除链表结点

题目来源:

  1. 28. 在 O(1) 时间删除链表结点
  2. LeetCode 237. 删除链表中的节点

算法:

  1. 得到要删除节点的下一个节点 pNext;
  2. 将 pNext->val 赋给 node->val;
  3. 让 node 指向 pNext->next;
  4. delete pNext。

代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution
{
public:void deleteNode(ListNode *node){ListNode *pNext = node->next;node->val = pNext->val;node->next = pNext->next;delete pNext;}
};

复杂度分析:

时间复杂度:O(1)。

空间复杂度:O(1)。

题目二:删除链表中重复的节点

题目来源:29. 删除链表中重复的节点

代码 1:书上的版本,很长,但是没有内存泄漏

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution
{
public:ListNode *deleteDuplication(ListNode *head){if (head == nullptr)return nullptr;ListNode *p = head, *pre = nullptr;while (p){ListNode *pNext = p->next;bool needDelete = false;if (pNext && p->val == pNext->val)needDelete = true;if (needDelete){int value = p->val;ListNode *pToBeDel = p;while (pToBeDel && pToBeDel->val == value){pNext = pToBeDel->next;delete pToBeDel;pToBeDel = pNext;}if (pre == nullptr)head = pNext;elsepre->next = pNext;p = pNext;}else{pre = p;p = p->next;}}return head;}
};

代码 2:简化版,没有 delete 重复节点,存在内存泄漏

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution
{
public:ListNode *deleteDuplication(ListNode *head){auto dummy = new ListNode(-1); // 建立虚拟头结点dummy->next = head;			   // 虚拟头结点指向头结点auto p = dummy;while (p->next) // p的下一个节点不为空{auto q = p->next;// q的下一个节点不为空,且q的下一个节点的值等于p的下一个节点的值while (q->next && q->next->val == p->next->val)q = q->next;// 如果q==p的下一个节点 p=qif (q == p->next)p = q;// 如果不是说明存在重复元素,则p指向q的下一个节点即非重复节点elsep->next = q->next;}return dummy->next;}
};

复杂度分析:

时间复杂度:O(n),其中 n 是链表的长度。

空间复杂度:O(1)。

http://www.dtcms.com/wzjs/213423.html

相关文章:

  • css样式模板网站个人网站免费域名和服务器
  • 网站详情怎么做的今天的三个新闻
  • 个人博客网站开发背景论文网址导航怎样推广
  • 学校建设网站拓扑图站长工具百科
  • 中信建设有限责任公司钱三强网站seo优化教程
  • 什么样的网站容易做seo深圳推广公司排行榜
  • 快捷的网站建设排行榜大数据培训机构排名前十
  • 合规部对于网站建设的意见合肥今日头条新闻
  • 昆明微网站制作百度sem竞价推广电子书
  • 接单做网站怎么开价格seo运营是做什么的
  • 武汉做商城网站公司网页网站建设
  • 陕西安康网站建设seo 网站优化推广排名教程
  • 电脑建立网站平台企业网站建设方案模板
  • 软件兼职平台宁波如何做seo排名优化
  • 网页网站自做全搞定免费文案素材网站
  • 网站推广优势哪里可以接广告
  • 做网站被忽悠算诈骗吗百度一下下载安装
  • 电子商务网站建设如何策划与实施重庆做优化的网络公司
  • 电脑网站自适应怎么做关键词排名点击器
  • 移动门户网站建设特点江北关键词优化排名seo
  • 网站制作多少钱资讯合肥疫情最新消息
  • dnf做代练哪个网站好点网络营销系统
  • 做一个交易网站要花多少钱关键词优化排名首页
  • 教育类网站开发费用新手怎么入行sem
  • 自己做网站模板域名注册网站哪个好
  • 电子商务网站建设代码电商网站设计方案
  • 搭建什么样的平台网站性能优化方法
  • 企业培训课程有哪些刷神马seo排名首页排名
  • 济南网站建设求职推广怎么做
  • 手机付费咨询网站建设临沂seo建站