Skip to content

Commit 617e844

Browse files
committed
Solved problem 144 : Binary Tree Preorder Traversal
1 parent 9a8d720 commit 617e844

File tree

2 files changed

+60
-3
lines changed

2 files changed

+60
-3
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Problem: 144
3+
* Name: Binary Tree Preorder Traversal
4+
* Difficulty: Easy
5+
* Topic: Binary Trees
6+
* Link: https://leetcode.com/problems/binary-tree-preorder-traversal
7+
*/
8+
9+
#include <bits/stdc++.h>
10+
#include <cstddef>
11+
using namespace std;
12+
13+
// Tree Node Implementation
14+
struct TreeNode {
15+
int val;
16+
TreeNode *left;
17+
TreeNode *right;
18+
TreeNode() : val(0), left(nullptr), right(nullptr) {}
19+
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
20+
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
21+
};
22+
23+
// Stack
24+
// Time Complexity: O(n)
25+
// Space Complexity: O(n)
26+
vector<int> preorderTraversal(TreeNode* root) {
27+
if (root == nullptr) {return {};}
28+
vector<int> result;
29+
stack<TreeNode*> remaining;
30+
remaining.push(root);
31+
32+
while (!remaining.empty()) {
33+
TreeNode *current = remaining.top();
34+
remaining.pop();
35+
result.push_back(current->val);
36+
37+
if (current->right != nullptr) {remaining.push(current->right);}
38+
if (current->left != nullptr) {remaining.push(current->left);}
39+
}
40+
return result;
41+
}
42+
43+
// Call Stack
44+
// Time Complexity: O(n)
45+
// Space Complexity: O(n)
46+
void preorderHelper(TreeNode* node, vector<int>& result);
47+
vector<int> preorderTraversal(TreeNode* root) {
48+
vector<int> result;
49+
preorderHelper(root, result);
50+
return result;
51+
}
52+
void preorderHelper(TreeNode* node, vector<int>& result){
53+
if (node == nullptr) {return;}
54+
result.push_back(node->val),
55+
preorderHelper(node->left, result);
56+
preorderHelper(node->right, result);
57+
}

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
### Problems Solved
1818

19-
| Total | 55 |
19+
| Total | 56 |
2020
|:---:|:---:|
2121

2222
#### Search By Topic
@@ -26,7 +26,7 @@
2626
| Arrays & Hashing | 7 |
2727
| Backtracking | 0 |
2828
| Binary Search | 2 |
29-
| Binary Trees | 12 |
29+
| Binary Trees | 13 |
3030
| Bit Manipulation | 6 |
3131
| Dynamic Programming 1D | 2 |
3232
| Dynamic Programming 2D | 0 |
@@ -46,7 +46,7 @@
4646

4747
| Difficulty | Number |
4848
|:---|---:|
49-
| Easy | 46 |
49+
| Easy | 47 |
5050
| Medium | 9 |
5151
| Hard | 0 |
5252

0 commit comments

Comments
 (0)