Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Binary Tree Preorder Traversal #21

Open
@cheatsheet1999

Description

@cheatsheet1999

Given the root of a binary tree, return the preorder traversal of its nodes' values.
Screen Shot 2021-09-07 at 7 30 44 PM
Screen Shot 2021-09-07 at 7 31 39 PM

A Very Straightforward Solution

var preorderTraversal = function(root, res = []) {
    if (!root) return [];
    res.push(root.val);
    if(root.left)  preorderTraversal(root.left, res);
    if(root.right) preorderTraversal(root.right, res);
    return res;
};

An O(N) Solution may be interesting

var preorderTraversal = function(root) {
    if(!root) return [];
    //We need to put a root in the stack first, because Pre-order traverse from root => left => right
    let stack = [root];
    let arr = [];
    while(stack.length) {
        let curr = stack.pop();
        arr.push(curr.val);
        // we want to push right subtree is because the left subtree will be visit first then.
        if(curr.right) {
            stack.push(curr.right);
        }
        if(curr.left) {
            stack.push(curr.left);
        }
    }
    return arr;
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions