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

金融视频直播网站开发网络推广网站培训

金融视频直播网站开发,网络推广网站培训,大宗商品交易平台推荐,温州市营销网站建设链表解题技巧 额外的数据结构(哈希表);快慢指针;虚拟头节点; 反转链表 分别实现单向链表和双向链表的反转。 要求:长度为N的链表,时间复杂度为O(N),额外空间复杂度为O(1)。 反转…

链表解题技巧

  • 额外的数据结构(哈希表);
  • 快慢指针;
  • 虚拟头节点;

反转链表

分别实现单向链表和双向链表的反转。

要求:长度为N的链表,时间复杂度为O(N),额外空间复杂度为O(1)。

反转单向链表:

方法1(使用栈,时:O(N),空:O(N)):

  1. 第一次遍历将数据添加至栈中;
  2. 定义一个空节点,tmp记录,cur指向该节点;
  3. 栈不为空开始循环出栈:
    1. cur的next指向的栈顶元素;
    2. 栈顶元素出栈;
    3. cur移动到next的位置;
  4. cur现在在最后一个位置,将其next赋值为nullptr;
  5. cur指向tmp(空节点)的next位置,并删除tmp;
  6. 返回cur(新的头节点);
LinkedNode* LinkedList::reverseWithStack(LinkedNode *head) {if (head == nullptr || head->next == nullptr) {return head;}std::stack<LinkedNode*> stk;LinkedNode* cur = head;while (cur) {stk.push(cur);cur = cur->next;}LinkedNode* tmp = new LinkedNode();cur = tmp;while (!stk.empty()) {cur->next = stk.top();stk.pop();cur = cur->next;}cur->next = nullptr;cur = tmp->next;delete tmp;return cur;
}

方法2(双指针,时:O(N),空:O(1)):

双指针解法:

  1. 定义两个指针new_head,cur,初始new_head指向head,cur指向head的next;
  2. cur不为nullptr则开始循环:
    1. head的next赋值为cur的next;
    2. cur的next赋值为new_head;
    3. new_head移动到cur;
    4. cur移动到head的next;
  3. 最后返回new_head即可。
LinkedNode* LinkedList::reverse(LinkedNode *head) {if (head == nullptr || head->next == nullptr) {return head;}LinkedNode *new_head = head;LinkedNode *cur = head->next;while (cur) {head->next = cur->next;cur->next = new_head;new_head = cur;cur = head->next;}return new_head;
}

反转双链表

DoubleLinkedNode* LinkedList::reverseDoubleLinkedList(DoubleLinkedNode *head) {if (head == nullptr || head->next == nullptr) {return head;}DoubleLinkedNode *pre = head;DoubleLinkedNode *cur = head->next;while (cur) {DoubleLinkedNode *tmp = pre->next;pre->next = pre->pre;pre->pre = tmp;pre = cur;cur = cur->next;}return pre;
} 
http://www.yayakq.cn/news/585557/

相关文章:

  • 什么网站做聚乙烯醇好的h5网站价格方案
  • 南山建网站企业名录app
  • 哪个网站做任务能赚钱wordpress 模块开发教程
  • 淘宝客的网站怎么做呢一个企业做网站需要什么资料
  • 网站制作公司报价淮北建设网站
  • 微网站模板怎么做seo优化的基本流程
  • 哪些做直播卖食品的网站网站建设费用高低有什么区别
  • php做网站一般用什么软件色弱可以做网站开发吗
  • 做网站被捉网站浮动窗口代码
  • 天津网站优化指导一个网站两个域名百度商桥安装方法
  • 徐州建设厅网站住房及城乡建设部网站
  • 潍坊网站制作案例seo的优化步骤
  • dll网站服务wordpress宠物插件
  • 东莞网站忧化现在做网站需要多少钱
  • 需要推销自己做网站的公司wordpress 调用标签云
  • 网站开发基本要求crm管理系统单机版
  • 关于推动门户网站建设d泰康人寿保险官方网站
  • 清远做网站公司备案网站名称大全
  • 网站建设外包工作泗水县建设局的网站怎么打开
  • 网站设计与制作一般步骤辽宁建设工程招标网站
  • 马云的网站怎么做的萍乡网站建设哪家好哦
  • 可以看电视剧的网站如何用文档创建一个网站
  • 微信公众号平台及网站建设计划网站模板下载网站
  • wordpress 图片站flash翻页效果网站模板
  • 建设网站你认为需要注意建设银行注册网站
  • 房产如何做网站3d溜溜网室内设计图库
  • 可信网站是什么好玩的html代码
  • 免费自助建站平台系统手机+显示器自适应wordpress+主题
  • 电商类网站怎么做推广php网站建设课程作业
  • 太原网站建设技术外包小程序开发免费平台