Coding Interview

[LeetCode] DFS - 94. Binary Tree Inorder Traversal

milliwonkim 2022. 9. 27. 19:08
반응형
SMALL

문제

Given the root of a binary tree, return the inorder traversal of its nodes' values.

 

Example 1:

Input: root = [1,null,2,3]
Output: [1,3,2]

Example 2:

Input: root = []
Output: []

Example 3:

Input: root = [1]
Output: [1]

 

Constraints:

  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

코드

// Iterative

const inorderTraversal = (root) => {
    let curr = root,  res = [], stack = [];
    while (curr || stack.length) {
        while (curr) {
            stack.push(curr);
            curr = curr.left;
        }
        curr = stack.pop();
        res.push(curr.val);
        curr = curr.right;
    }
    return res;
};
// DFS

var inorderTraversal = function(root) {
    const result = [];
    
    function dfs(rt) {
        if((rt && rt.length === 0) || !rt) return;
        
        if(rt.left) dfs(rt.left)
        result.push(rt.val)
        if(rt.right) dfs(rt.right)
    }
    
    dfs(root);
    
    return result;
};
반응형
LIST