94. 二叉树的中序遍历

59 阅读1分钟

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

root = [1,null,2,3]

输出: [1,3,2]

 // 中序:左-中-右
 // 递归法
// var inorderTraversal = function(root) {
//     let result = []

//     let preorder = function (node) {
//         if (node) {
//             if(node.left) preorder(node.left)
//             result.push(node.val)
//             if (node.right) preorder(node.right)
//         }
//     }

//     preorder(root)
//     return result
// };

// 2. 迭代法-DFS

var inorderTraversal = function(root) {

    const result = []
    const stack = []

    while (root || stack.length) {
        while(root) {
            stack.push(root)
            root = root.left
        }

        root = stack.pop()
        result.push(root.val)
        root = root.right
    }

    return result
}