zoukankan      html  css  js  c++  java
  • 力扣----8. 二叉树的中序遍历(JavaScript, Java实现)

    题目描述:

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

    示例:

    输入: [1,null,2,3]
    1
     
        2
      /
    3

    输出: [1,3,2]

    JavaScript实现

    递归

    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @return {number[]}
     */
    var inorderTraversal = function(root) {
        if(!root) return [];
        return [...inorderTraversal(root.left), root.val, ...inorderTraversal(root.right)]
    };

    非递归

    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @return {number[]}
     */
    
    var inorderTraversal = function(root) {
        const [noVisit, visited] = [0, 1];
        let res = [];
        const stack = [[noVisit, root]];
        while(stack.length){
            let [isVisited, root] = stack.pop();
            if(!root) continue
            if(!isVisited) {
                stack.push([noVisit, root.right])
                stack.push([visited, root])
                stack.push([noVisit, root.left])
            }else{
                res.push(root.val)
            }
        }
        return res;
    };

    Java实现:

    待补充

  • 相关阅读:
    第二次作业
    第一次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    HTML标签分类
    HTML属性与事件的搭配使用
    HTML全局属性和全局事件属性
  • 原文地址:https://www.cnblogs.com/manru75/p/13083785.html
Copyright © 2011-2022 走看看