Skip to content

Commit df2fda3

Browse files
committed
added 145, 589, 590, 2331, added cpp solution for 94, 144
1 parent f1a1df4 commit df2fda3

6 files changed

+210
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
94. Binary Tree Inorder Traversal
3+
4+
Submitted: December 2, 2024
5+
6+
Runtime: 0 ms (beats 100.00%)
7+
8+
Memory: 11.04 MB (beats 14.19%)
9+
*/
10+
11+
/**
12+
* Definition for a binary tree node.
13+
* struct TreeNode {
14+
* int val;
15+
* TreeNode *left;
16+
* TreeNode *right;
17+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
18+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
19+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
20+
* };
21+
*/
22+
class Solution {
23+
public:
24+
vector<int> inorderTraversal(TreeNode* root) {
25+
vector<int> result;
26+
traversalHelper(result, root);
27+
return result;
28+
}
29+
void traversalHelper(vector<int>& vec, TreeNode* root) {
30+
if (root == nullptr) return;
31+
traversalHelper(vec, root->left);
32+
vec.push_back(root->val);
33+
traversalHelper(vec, root->right);
34+
}
35+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* struct TreeNode {
4+
* int val;
5+
* TreeNode *left;
6+
* TreeNode *right;
7+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
8+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
9+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
10+
* };
11+
*/
12+
class Solution {
13+
public:
14+
vector<int> preorderTraversal(TreeNode* root) {
15+
vector<int> result;
16+
traversalHelper(result, root);
17+
return result;
18+
}
19+
void traversalHelper(vector<int>& vec, TreeNode* root) {
20+
if (root == nullptr) return;
21+
vec.push_back(root->val);
22+
traversalHelper(vec, root->left);
23+
traversalHelper(vec, root->right);
24+
}
25+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
145. Binary Tree Postorder Traversal
3+
4+
December 2, 2024
5+
6+
Runtime: 0 ms (beats 100.00%)
7+
Memory: 10.90% (beats 15.34%)
8+
*/
9+
10+
/**
11+
* Definition for a binary tree node.
12+
* struct TreeNode {
13+
* int val;
14+
* TreeNode *left;
15+
* TreeNode *right;
16+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
17+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
18+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
19+
* };
20+
*/
21+
class Solution {
22+
public:
23+
vector<int> postorderTraversal(TreeNode* root) {
24+
vector<int> result;
25+
traversalHelper(result, root);
26+
return result;
27+
}
28+
void traversalHelper(vector<int>& vec, TreeNode* root) {
29+
if (root == nullptr) return;
30+
traversalHelper(vec, root->left);
31+
traversalHelper(vec, root->right);
32+
vec.push_back(root->val);
33+
}
34+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
589. N-ary Tree Preorder Traversal
3+
4+
Submitted: December 2, 2024
5+
6+
Runtime: 14 ms (beats 47.33%)
7+
Memory: 15.65 MB (beats 14.49%)
8+
*/
9+
10+
/*
11+
// Definition for a Node.
12+
class Node {
13+
public:
14+
int val;
15+
vector<Node*> children;
16+
17+
Node() {}
18+
19+
Node(int _val) {
20+
val = _val;
21+
}
22+
23+
Node(int _val, vector<Node*> _children) {
24+
val = _val;
25+
children = _children;
26+
}
27+
};
28+
*/
29+
30+
class Solution {
31+
public:
32+
vector<int> preorder(Node* root) {
33+
vector<int> result;
34+
traversalHelper(result, root);
35+
return result;
36+
}
37+
void traversalHelper(vector<int>& vec, Node* root) {
38+
if (root == nullptr) return;
39+
vec.push_back(root->val);
40+
for (Node* child : root->children) {
41+
traversalHelper(vec, child);
42+
}
43+
}
44+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
590. N-ary Tree Postorder Traversal
3+
4+
Submitted: December 2, 2024
5+
6+
12 ms (beats 66.60%)
7+
Memory: 15.64 MB (beats 18.30%)
8+
*/
9+
10+
/*
11+
// Definition for a Node.
12+
class Node {
13+
public:
14+
int val;
15+
vector<Node*> children;
16+
17+
Node() {}
18+
19+
Node(int _val) {
20+
val = _val;
21+
}
22+
23+
Node(int _val, vector<Node*> _children) {
24+
val = _val;
25+
children = _children;
26+
}
27+
};
28+
*/
29+
30+
class Solution {
31+
public:
32+
vector<int> postorder(Node* root) {
33+
vector<int> result;
34+
traversalHelper(result, root);
35+
return result;
36+
}
37+
void traversalHelper(vector<int>& vec, Node* root) {
38+
if (root == nullptr) return;
39+
for (Node* child : root->children) {
40+
traversalHelper(vec, child);
41+
}
42+
vec.push_back(root->val);
43+
}
44+
};

2331-evaluate-boolean-binary-tree.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
2331. Evaluate Boolean Binary Tree
3+
4+
Submitted: December 2, 2024
5+
6+
0 ms (beats 100.00%)
7+
24.32 MB (beats 5.76%)
8+
*/
9+
10+
/**
11+
* Definition for a binary tree node.
12+
* struct TreeNode {
13+
* int val;
14+
* TreeNode *left;
15+
* TreeNode *right;
16+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
17+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
18+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
19+
* };
20+
*/
21+
class Solution {
22+
public:
23+
bool evaluateTree(TreeNode* root) {
24+
if (root->val == 0 || root->val == 1) return (bool) root->val;
25+
else if (root->val == 2) return evaluateTree(root->left) || evaluateTree(root->right);
26+
else return evaluateTree(root->left) && evaluateTree(root->right);
27+
}
28+
};

0 commit comments

Comments
 (0)