Advertisement
Guest User

Convert Sorted Array to Binary Search Tree

a guest
Apr 6th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.77 KB | None | 0 0
  1. /**
  2.  * Definition for a binary tree node.
  3.  * struct TreeNode {
  4.  *     int val;
  5.  *     struct TreeNode *left;
  6.  *     struct TreeNode *right;
  7.  * };
  8.  */
  9.  
  10. typedef struct TreeNode Node;
  11.  
  12. Node* createNode(int n){
  13.     Node* newNode = malloc(sizeof(Node));
  14.     newNode->val = n;
  15.     newNode->left = newNode->right = NULL;
  16.     return newNode;
  17. }
  18.  
  19. Node* insert(int* nums, int l, int r){
  20.     if (l > r)
  21.         return NULL;
  22.     int m = (r - l) / 2 + l;
  23.     Node *node = createNode(nums[m]);
  24.     node->left = insert(nums, l, m - 1);
  25.     node->right = insert(nums, m + 1, r);
  26.     return node;
  27. }
  28.  
  29. Node* sortedArrayToBST(int* nums, int numsSize){
  30.     Node* root = NULL;
  31.     if(!numsSize)
  32.         return root;
  33.     root = insert(nums, 0, numsSize - 1);
  34.     return root;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement