Skip to content

Commit 51085f8

Browse files
committed
Sync LeetCode submission - Binary Tree Inorder Traversal (c)
1 parent 3ac4711 commit 51085f8

File tree

1 file changed

+21
-38
lines changed

1 file changed

+21
-38
lines changed
Lines changed: 21 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,24 @@
1+
int* traverse(struct TreeNode* node, int* store) {
2+
if (node->left) {
3+
store = traverse(node->left, store);
4+
}
5+
*store = node->val;
6+
++store;
7+
if (node->right) {
8+
store = traverse(node->right, store);
9+
}
10+
return store;
11+
}
112

2-
3-
#include <stdio.h>
4-
5-
// struct TreeNode {
6-
// int val;
7-
// struct TreeNode *left;
8-
// struct TreeNode *right;
9-
// };
10-
11-
typedef struct TreeNode TreeNode;
12-
13-
14-
void traverse(TreeNode* tree, int* nums, int* returnSize) {
15-
16-
17-
if (tree->left) {
18-
traverse(tree->left, nums, returnSize);
19-
20-
};
21-
22-
// Add one after adding the value in the current tree.
23-
nums[(*returnSize)++]=tree->val;
24-
25-
if (tree->right) {
26-
traverse(tree->right, nums, returnSize);
27-
}
13+
int* inorderTraversal(struct TreeNode* root, int* returnSize) {
14+
int* arr = malloc(sizeof(int) * 100);
15+
if (root) {
16+
int* arr_end = traverse(root, arr);
17+
*returnSize = (arr_end - arr);
18+
return arr;
19+
} else {
20+
*returnSize = 0;
21+
return 0;
22+
}
2823

2924
}
30-
31-
int* inorderTraversal(struct TreeNode* root, int* returnSize){
32-
int* nums = (int*) malloc(100*sizeof(int));
33-
*returnSize = 0;
34-
35-
if (root) {
36-
traverse(root, nums, returnSize);
37-
}
38-
39-
nums = realloc(nums, sizeof(int) * (*returnSize));
40-
return nums;
41-
}

0 commit comments

Comments
 (0)