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

廊坊网站建设电话武汉做网络推广的公司

廊坊网站建设电话,武汉做网络推广的公司,做外贸网站策划,建站公司兴田德润114.二叉树展开为链表 — 头插法(js) 题目描述关键思路完整代码 题目描述 114. 二叉树展开为链表 关键思路 为什么要用头插法? 遍历顺序是:右 → 左 → 根 插入顺序就变成:根 → 左 → 右,正好是 先序遍历…

114.二叉树展开为链表 — 头插法(js)

  • 题目描述
  • 关键思路
  • 完整代码

题目描述

114. 二叉树展开为链表

关键思路

  1. 为什么要用头插法?

    遍历顺序是:右 → 左 → 根

    插入顺序就变成:根 → 左 → 右,正好是 先序遍历的顺序。

    优点:

    • 原地修改,不需要辅助栈
    • 空间复杂度 O(1)
  2. 整体上是一个 dfs

  3. 按照 右-左-根 的顺序遍历树节点

  4. 根据题目要求,左子树指向 null, 右子树指向下一个节点(可以理解为上一个已经处理好的链表头)

  5. 然后把新的头节点设置为当前遍历到的根节点

用这个例子描述一下过程:

在这里插入图片描述从最右侧开始拼接链表,处理顺序如下:

node (当前处理节点)head(已经构建好的链表的头节点)操作
6null6.right = null, head = 6
565.right = 6, head = 5
454.right = 5, head = 4
343.right = 4, head = 3
232.right = 3, head = 2
121.right = 2, head = 1

完整代码

var flatten = function(root) {let head = null;function dfs(node) {if (!node)  return;dfs(node.right); // 先处理右子树dfs(node.left);  // 再处理左子树node.left = null; node.right = head; // 当前节点的右指针指向已经处理好的链表头(也就是上一个节点)head = node; // 现在链表头节点是 node}dfs(root);
};
http://www.dtcms.com/wzjs/162308.html

相关文章:

  • 网站建设百度云视频号怎么付费推广
  • 龙海网站制作广州网络seo优化
  • 三级 做爰免费网站百度软件下载中心官方网站
  • 麒麟区住房和城乡建设局网站域名买卖交易平台
  • 网站cms企业有了域名怎么建网站
  • 青白江做网站的公司萧山区seo关键词排名
  • 有没有做卡商的网站三只松鼠网络营销策划书
  • 网页设计模板html代码登录代码seoul
  • 做网站的系统功能需求推广软文范例100字
  • 百度推广需要自己有网站吗网络优化需要哪些知识
  • 做网站的日文百度风云搜索榜
  • 做课件的网站seo收费标准多少
  • 网站制作的困难和解决方案网络营销技巧培训班
  • 织梦后台点击网站主页新手怎么学做电商
  • 手机版网站开发html5苏州网站建设开发公司
  • wordpress被刷搜索seo标题优化的方法
  • 网站建设q a产品经理培训哪个机构好
  • 海绵宝宝网页设计素材石家庄seo外包公司
  • 设计方案网站谷歌浏览器手机版官网下载
  • 学做视频t的网站快速排名服务平台
  • 公司网站建设费属于宣传费吗友情链接批量查询
  • 淘宝代运营多少钱一个月旺道seo推广有用吗
  • 和田哪里有做网站的地方注册公司网上申请入口
  • 广州品牌网站建设活动策划
  • 广州软件开发外包赣州seo
  • 做网站编辑大专可以吗百度快照
  • 西数 网站建设如何做品牌运营与推广
  • 用flash做网站建设免费域名注册平台有哪些
  • html 门户网站模板今天的最新消息新闻
  • 培训教育网站开发h5网站制作平台