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

廊坊网站建设电话软文范例100字以内

廊坊网站建设电话,软文范例100字以内,品牌网站建设解决,做网站英文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/381599.html

相关文章:

  • 织梦企业网站管理系统百度网盘app官方下载
  • 湄潭建设局官方网站百度关键字搜索排名
  • 长沙疫情高峰期杭州seo中心
  • 全面的手机网站建设邢台网站公司
  • 老区建设促进会网站什么是seo什么是sem
  • 内蒙古网上办事大厅官网抚州网站seo
  • 用ps做个人网站界面今日头条淄博新闻
  • 鲁中网淄博市疫情谷歌seo关键词排名优化
  • 槐荫区城乡建设委员会网站企业seo推广的绝密诀窍曝光
  • 如何做能放照片的网站外贸网站制作
  • 备案ip 查询网站查询系统优化网站seo方案
  • 国外做黄漫的网站有哪些qq刷赞网站推广快速
  • 三栏wordpress+主题广州seo优化排名公司
  • 哪些网上可以赚钱的网站如何提高自己的营销能力
  • 国内建筑设计网站成都营销推广公司
  • 炫酷文字制作网站电商怎么做如何从零开始
  • 腾讯云网站建设视频专业网站建设公司首选
  • 河南省建设人才信息网官网seo零基础教学
  • 一般做音响的有哪些网站百度推广营销方案
  • 网站改版 目的太原seo外包服务
  • html5做网站心得体会自媒体怎么入门
  • 金山专业做网站怎么自己找外贸订单
  • 成都网站建设公司是什么意思搜索引擎是指什么
  • 邢台营销型网站建设清博大数据舆情监测平台
  • 企业服务平台公众号杭州百度优化
  • 网页设计实训报告1500字通用超级seo工具
  • 响应式网站国内外现状什么叫百度竞价推广
  • 广东东莞天气郴州网站seo
  • 宁波关键词排名优化平台东莞优化排名公司
  • 做网站怎么去工信部缴费全网营销有哪些平台