zoukankan      html  css  js  c++  java
  • 94、二叉树的中序遍历 | JS

    给定一个二叉树的根节点 root ,返回它的 中序 遍历。

    示例 1:

    输入:root = [1,null,2,3]
    输出:[1,3,2]


    示例 2:

    输入:root = []
    输出:[]


    示例 3:

    输入:root = [1]
    输出:[1]


    示例 4:

    输入:root = [1,2]
    输出:[2,1]


    示例 5:

    输入:root = [1,null,2]
    输出:[1,2]
     

    提示:

    • 树中节点数目在范围 [0, 100] 内
    • -100 <= Node.val <= 100
     1 /**
     2  * Definition for a binary tree node.
     3  * function TreeNode(val, left, right) {
     4  *     this.val = (val===undefined ? 0 : val)
     5  *     this.left = (left===undefined ? null : left)
     6  *     this.right = (right===undefined ? null : right)
     7  * }
     8  */
     9 /**
    10  * @param {TreeNode} root
    11  * @return {number[]}
    12  */
    13 
    14  //递归
    15 var inorderTraversal = function(root) {
    16     const res = [];        //中序遍历左 根 右
    17     const rec = (n) => {  //rec是递归的英文recursion缩写
    18         if(!n) return;
    19         rec(n.left);
    20         res.push(n.val);
    21         rec(n.right);
    22     };
    23     rec(root);
    24     return res;
    25 };
    26 
    27 //非递归
    28 var inorderTraversal = function(root) {
    29     const res = [];        
    30     const stack = [];
    31     let p = root;  //p指针
    32     while( stack.length || p) {
    33         while(p) {
    34             stack.push(p);
    35             p = p.left;
    36         }
    37         const n = stack.pop();
    38         res.push(n.val);
    39         p = n.right;
    40     }
    41     return res;
    42 };
  • 相关阅读:
    Git:创建远程仓库并推送内容到远程库
    Git中ssh的使用
    Git中的文件上传、修改、撤消修改和删除
    Git的安装和创建版本库
    HTML相关知识点总结
    Android开发--TableLayout的应用
    Java中sql语句的引号问题
    NXOPEN环境配置
    shell小技巧
    查询MySQL锁等待的语句
  • 原文地址:https://www.cnblogs.com/oaoa/p/14844110.html
Copyright © 2011-2022 走看看