Skip to content

Binary Tree Preorder Traversal #21

@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