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

神华公司两学一做网站在线免费设计logo

神华公司两学一做网站,在线免费设计logo,一键生成网页,新网站怎样做优化用O(1)的时间复杂度删除单链表中的某个节点 给定链表的头指针和一个结点指针#xff0c;在O(1)时间删除该结点。链表结点的定义如下#xff1a; struct ListNode {int m_nKey;ListNode* m_pNext; }; 函数的声明如下#xff1a; void DeleteNode(ListNode* pListHea…用O(1)的时间复杂度删除单链表中的某个节点 给定链表的头指针和一个结点指针在O(1)时间删除该结点。链表结点的定义如下 struct ListNode {int m_nKey;ListNode* m_pNext; }; 函数的声明如下 void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted); 这是一道广为流传的Google面试题考察我们对链表的操作和时间复杂度的了解咋一看这道题还想不出什么较好的解法但人家把题出在这肯定是有解法的。一般单链表删除某个节点需要知道删除节点的前一个节点则需要O(n)的遍历时间显然常规思路是不行的。在仔细看题目换一种思路既然不能在O(1)得到删除节点的前一个元素但我们可以轻松得到后一个元素这样我们何不把后一个元素赋值给待删除节点这样也就相当于是删除了当前元素。可见该方法可行但如果待删除节点为最后一个节点则不能按照以上思路没有办法只能按照常规方法遍历时间复杂度为O(n)是不是不符合题目要求呢可能很多人在这就会怀疑自己的思考从而放弃这种思路最后可能放弃这道题这就是这道面试题有意思的地方虽看简单但是考察了大家的分析判断能力是否拥有强大的心理充分自信。其实我们分析一下仍然是满足题目要求的如果删除节点为前面的n-1个节点则时间复杂度为O(1)只有删除节点为最后一个时时间复杂度才为O(n)所以平均的时间复杂度为O(1) * (n-1) O(n)/n O(1);仍然为O(1).下面见代码 1 /* Delete a node in a list with O(1)2 * input: pListHead - the head of list3 * pToBeDeleted - the node to be deleted4 */5 6 struct ListNode 7 {8 int m_nKey;9 ListNode* m_pNext; 10 }; 11 12 void DeleteNode(ListNode *pListHead, ListNode *pToBeDeleted) 13 { 14 if (!pListHead || !pToBeDeleted) 15 return; 16 17 if (pToBeDeleted-m_pNext ! NULL) { 18 ListNode *pNext pToBeDeleted-m_pNext; 19 pToBeDeleted-m_pNext pNext-m_pNext; 20 pToBeDeleted-m_nKey pNext-m_nKey; 21 22 delete pNext; 23 pNext NULL; 24 } 25 else { //待删除节点为尾节点 26 ListNode *pTemp pListHead; 27 while(pTemp-m_pNext ! pToBeDeleted) 28 pTemp pTemp-m_pNext; 29 pTemp-m_pNext NULL; 30 31 delete pToBeDeleted; 32 pToBeDeleted NULL; 33 } 34 } 转载自http://www.cnblogs.com/bakari/p/4013812.html
http://www.pierceye.com/news/355271/

相关文章:

  • 淄川网站建设中小型企业网站建设
  • phpcms 投资 网站源码wordpress主题网站
  • 聊城网站托管义乌外贸公司联系方式
  • 开发一个小程序对网站做综合搜索引擎优化分析
  • 网站开发自学网有哪些企业可以做招聘的网站有哪些
  • 网站怎么做百度推广网站开发者模式
  • 学校网站设计制作目的做网站推广方法
  • wordpress建站云平台小程序商城开发平台
  • pc网站转换成微网站网站建设开发哪家质量好
  • wordpress网站使用教程aspnet东莞网站建设多少钱
  • 网站地图提交给百度证券公司如何拉客户
  • 做外贸有哪些免费的网站win7优化大师好不好
  • 网站功能怎么写上海网站制作建设怎么样
  • 网站域名是网站架构吗成都网站搭建优化推广
  • 自己做的网站添加交费功能合肥有什么好的网站建设公司好
  • 做网站品牌龙岩新增病例行动轨迹
  • 任家房网站建设郑州百度网站推广
  • 深圳建设网站的公司简介WordPress多功能投稿
  • 简述织梦网站上传及安怎样在网站上做免费的推广
  • 关于信用体系建设的网站wordpress新闻类模板下载
  • 免费行情软件网站下载大全爱学校vi设计案例
  • 网站外包优化怎样做免费抽皮肤的网站
  • 东八区网站建设网站源码在哪里
  • 重点建设专业 专题网站搜狗官方网站
  • 微信营销工具有哪些使用最佳搜索引擎优化工具
  • 网站推广意识薄弱wordpress授权协议
  • 用php做高中数学题库网站阿里网站建设教程
  • 大兴网站建设公司电话东莞企业网站制作怎么做
  • 网站维护有啥用2021跨境电商最火的产品
  • 专业的东莞网站排名wordpress 客户端使用