首页 > 其他分享 >Data Structure: Tree & tree generator All In One

Data Structure: Tree & tree generator All In One

时间:2022-10-18 16:48:52浏览次数:85  
标签:right TreeNode generator temp tree Tree null Data left

Data Structure: Tree & tree generator All In One


"use strict";

/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2022-10-10
 * @modified
 *
 * @description树 & 遍历
 * @difficulty Easy
 * @ime_complexity O(n)
 * @space_complexity O(n)
 * @augments
 * @example
 * @link https://leetcode.cn/leetbook/read/data-structure-binary-tree/xe17x7/
 * @solutions
 *
 * @best_solutions
 *
 */

// export {};

const log = console.log;

// Definition for a binary tree node.
class TreeNode {
  val: number;
  left: TreeNode | null;
  right: TreeNode | null;
  constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
    this.val = (val === undefined ? 0 : val);
    this.left = (left === undefined ? null : left);
    this.right = (right === undefined ? null : right);
  }
}


// bug ❌
const treeGenerator = (list) => {
  if(!list.length) return [];
  // let tree = new TreeNode(list[0]);
  let tree = new TreeNode();
  let temp = tree;
  console.log(`tree =`, tree);
  for (const [i, item] of list.entries()) {
    // console.log(`item =`, item);
    // if(i === 0) {
    //   continue;
    // }
    temp.val = item;
    console.log(`temp 1 =`, temp);
    if(item !== null) {
      temp.right = new TreeNode(null);
      temp.left = new TreeNode(list[i + 1]);
      if(i < list.length - 1) {
          temp = temp.left;
      }
    } else {
      temp.left = new TreeNode(null);
      temp.right = new TreeNode(list[i + 1]);
      if(i < list.length - 1) {
        temp = temp.right;
      }
    }
    console.log(`temp 2 =`, temp);
  }
  console.log(`tree ?=`, tree);
  return tree;
}

treeGenerator([1,null,2,3]);
// 

https://leetcode.cn/leetbook/read/data-structure-binary-tree/xecaj6/

LeetCode

function preOrderTraversal(root: TreeNode | null): number[] {
  if(!root) return [];
  // 144. 二叉树的前序遍历: root, left, right
  // DFS 深度优先搜索
  function dfs(head: TreeNode | null, result: number[]) {
    if(!head) {
      return;
    }
    result.push(head.val);
    dfs(head.left, result)
    dfs(head.right, result);
  }
  let result: number[] = [];
  dfs(root, result);
  return result;
};


https://leetcode.com/problems/binary-tree-preorder-traversal/

https://leetcode.cn/problems/binary-tree-preorder-traversal/

refs



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载

标签:right,TreeNode,generator,temp,tree,Tree,null,Data,left
From: https://www.cnblogs.com/xgqfrms/p/16803069.html

相关文章

  • ClickHouse测试之mergetree中的order by字段是否符合最左原则
    先简单说一下最左原则顾名思义:1、最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>,<,between,like)就会停止匹配。2、例如:b=2如果建立(a,b)顺序的索引,是......
  • 关于ES索引被聚合查询导致filedata堵塞 (pressure too high, (smooth) bulk request ci
    今天在生产使用kibana查询了一条聚合语句,因为数据量比较大(40亿+),导致fielddatacache飙升,影响了写入,根据官方文档,进行如下操作:执行命令,查询filedatacache使用比较大的索引......
  • 关于51单片机C语言中的data,idata,xdata,pdata,code
    转自:​​http://www.baobaoshequ.com/article/4584​​从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类......
  • 用DataVerse的entity来控制Powerautomate的启动时间
    整体思想为DataVerse里创建一条记录,记录包含对应的固定Powerautomate(A)的启动时间,当这条记录里设置的启动时间发生变化时,触发更改Powerautomate(A)启动时间的另一个Powerautoma......
  • datax3在windows环境下cmd乱码
    问题描述:运行python\xxx\datax.py\xxx\job.json控制台汉字显示乱码。原因分析:window操作系统默认编码格式是gbk(963)编码,而在程序开发中我们统一的编码是UTF-8。这样......
  • CF620E New Year Tree
    题目链接题目大意\(~~\)给出一棵nn个节点的树,根节点为11。每个节点上有一种颜色c\(_{i}\)和m次操作。操作有两种:\(~~~~\)1.1\(~\)u\(~\)c:将以\(~\)u\(~\)为......
  • datax使用及优化
    datax概述    datax定位:离线同步工具    datax优势:        1.单进程多线程,单机压力大        2.理论上可以打满带宽链接    文档链接:http......
  • Entity Framework教程-数据注解 和 FlentAPI(Data Annotations)
    更新记录转载请注明出处:2022年10月18日发布。2022年10月10日从笔记迁移到博客。实体配置两种实体配置方式对比DataAnnotation:把配置以特性(Annotation)的形式标......
  • Codeforces Global Round 23 -D.Paths on the Tree
    题意给定一个树,树上每个节点i有一个权值s[i]。一共有k条从1(一定是根节点)开始的简单路径。设i点有c条路径通过,则其总权值为c*s.现在在限制:如果p[u]=i,p[v]=i,则abs(c[u]......
  • git & Sourcetree All In One
    git&SourcetreeAllInOneSourcetreeFreeGitGUIforMacandWindowshttps://www.sourcetreeapp.com/refshttps://confluence.atlassian.com/get-started-w......