15 Jun 2024C++ / Python / TypeScriptEasy

Binary Tree Preorder Traversal

Collected C++, Python, TypeScript solutions for binary tree preorder traversal. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Binary Tree Preorder Traversal. the solution files are available below.

solution files

  • C++ binary-tree-preorder-traversal/synced-solution.cpp
  • Python binary-tree-preorder-traversal/synced-solution.py
  • TypeScript binary-tree-preorder-traversal/synced-solution.ts

Solution files

Pythonbinary-tree-preorder-traversal/synced-solution.py
class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        result = []
        stack = [root] if root else []
        while stack:
            node = stack.pop()
            if node:
                result.append(node.val)
                stack.append(node.right)
                stack.append(node.left)
        return result
C++binary-tree-preorder-traversal/synced-solution.cpp
class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> result;
        if (!root) return result;
        stack<TreeNode*> st;
        st.push(root);
        while (!st.empty()) {
            TreeNode* node = st.top();
            st.pop();
            result.push_back(node->val);
            if (node->right) st.push(node->right);
            if (node->left) st.push(node->left);
        }
        return result;
    }
};
TypeScriptbinary-tree-preorder-traversal/synced-solution.ts
function preorderTraversal(root: TreeNode | null): number[] {
    const result: number[] = [];
    const stack: (TreeNode | null)[] = root ? [root] : [];
    while (stack.length > class="syntax-number">0) {
        const node = stack.pop();
        if (node) {
            result.push(node.val);
            if (node.right) stack.push(node.right);
            if (node.left) stack.push(node.left);
        }
    }
    return result;
}