首页 > 编程语言 >【前端面试】leetcode树javascript

【前端面试】leetcode树javascript

时间:2024-09-03 21:21:32浏览次数:14  
标签:right TreeNode val inorder javascript 面试 root leetcode left

写一个树

// 定义二叉树节点
function TreeNode(val, left, right) {
   
    this.val = (val === undefined ? 0 : val)
    this.left = (left === undefined ? null : left)
    this.right = (right === undefined ? null : right)
}

// 示例使用
const root = new TreeNode(1,
    new TreeNode(2,
        new TreeNode(4),
        new TreeNode(5)),
    new TreeNode(3,
        null,
        new TreeNode(7))
);

二叉树的中序遍历

https://leetcode.cn/problems/binary-tree-inorder-traversal/description/
在这里插入图片描述

递归

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var inorderTraversal = function(root) {
   
    const res = [];
    const inorder = (root) => {
   
        if (!root) {
   
            return;
        }
        inorder(root.left);
        res.push(root.val);
        inorder(root.right);
    }
    inorder(root);
    return res;
};

二叉树的先序遍历

var inorderTraversal = function(root) {
   
    const res = [];
    const inorder = (root) => {
   
        if (!root) {
   
            return;
        }
        res.push(root.val);
        inorder(root.left);
        inorder(root.right);
    }
    inorder(root);
    return res;
};

二叉树的后序遍历

var inorderTraversal = 

标签:right,TreeNode,val,inorder,javascript,面试,root,leetcode,left
From: https://blog.csdn.net/weixin_43342290/article/details/141866669

相关文章

  • 【前端面试】采用react前后,浏览器-解析渲染UI的变化
    浏览器渲染html浏览器解析和渲染UI(用户界面),特别是HTML文档,是一个复杂的过程,涉及到多个阶段。以下是浏览器从接收HTML文档到显示渲染后的页面的一般步骤:1.下载HTML文档:用户输入URL或点击链接时,浏览器会向服务器请求HTML文档。服务器响应请求,并将HTML文档......
  • [Javascript] Paralle Task
    functiontimeout(time){returnnewPromise((resolve)=>{setTimeout(resolve,time);});}classParalleTask{constructor(paralleCount=2){this.tasks=[];this.paralleCount=paralleCount;this.runningCount=0;}add(......
  • 322. 零钱兑换(leetcode)
    https://leetcode.cn/problems/coin-change/description/代码上比较麻烦的dp题,由于求的是最少数量,因此求答案时需要初始化无穷大来计算classSolution{publicintcoinChange(int[]coins,intamount){//f[i][j]表示前i个数中选,体积等于amount的选择最少硬......
  • 377. 组合总和 Ⅳ(leetcode)
    https://leetcode.cn/problems/combination-sum-iv/description/此篇题解解释了为什么不能直接用二维完全背包的方式做不过还是建议把这个题当成一个爬楼梯来做classSolution{public:intcombinationSum4(vector<int>&nums,inttarget){//f[i]表示若干数中......
  • 网站创建代办事项列表JavaScript
    一、明确需求我希望创建一个web,包含一个表单,能够实现添加任务、完成任务、删除任务等功能,网站具有背景图,通过按钮来进行交互。二、创建文件我们需要一个HTML文件、一个CSS样式文件和一个JS文件。三、开始制作要创建一个待办事项列表网页,首先需要确定网页的主题和目的。......
  • 面试最常见算法3—数组
    1.二维数组螺旋打印给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。示例1:输入:array=[[1,2,3],[8,9,4],[7,6,5]]输出:[1,2,3,4,5,6,7,......
  • 工厂模式、工厂方法面试常备
    1、定义汽车#include<iostream>usingnamespacestd;classCar{public:Car(stringname_):name(name_){}~Car(){}public:stringname;virtualvoidshow(){cout<<"thisisnomore:"<<name<<endl;......
  • 最近(2024.08.14-2024.08.25 )面试感悟
    简历最近(2024.08.14-2024.08.25)除了周末,都在面试的路上,平均每天3、4场面试,边面试边回顾知识点边完善简历,在哀鸿遍野的招聘市场里,简历做了调整,突出自己的优势,比如读过spring源码要能清楚的说出来、比如对jvm内存模型的了解,及为什么采用对应的垃圾回收算法;比如遇到的jvm内存及解决......
  • JVM面试(二)内存区域划分
    内存区划分Java虚拟机在执行Java程序的过程中会把它锁管理的内存划分为若干个不同的数据区域。这些区域有各自不同的用途,以及创建和销毁的时间。有的区域随着虚拟机的进程一直存在,有的区域依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟......
  • javascript变量
    定义变量var声明变量的关键字vara;vara=10;varb=20.8;varc="demo";定义时不区分数据类型,但是使用时存在类型的区分变量类型:①基本类型:(零零散散不可拆分)数字类型1010.6字符串"aa"'aaa'布尔类型真/假true/falseundefined类型即声明变量但不进行赋......