File tree Expand file tree Collapse file tree 1 file changed +21
-38
lines changed
problems/binary_tree_inorder_traversal Expand file tree Collapse file tree 1 file changed +21
-38
lines changed Original file line number Diff line number Diff line change
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
+ }
1
12
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
+ }
28
23
29
24
}
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
- }
You can’t perform that action at this time.
0 commit comments