Python•binary-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;
}
};
TypeScript•binary-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;
}