Binary Tree (easy)
94.Binary Tree Inorder Traversal
94. Binary Tree Inorder Traversal
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* inorderTraversal(struct TreeNode* root, int* returnSize){
void travel (struct TreeNode* root, int* arr, int* size)
{
if(root != NULL){
travel(root->left,arr,size);
arr[(*size)++] = root->val;
travel(root->right,arr,size);
}
}
int* arr = (int*)malloc(100*sizeof(int));
*returnSize = 0;
travel(root,arr,returnSize);
return arr;
}
100.Same Tree
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if(p == NULL&& q == NULL)
return true;
if(p == NULL||q == NULL)
return false;
if(p->val != q->val)
return false;
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
101. Symmetric Tree
bool isSymmetric(struct TreeNode* root){
bool treavl(struct TreeNode* lll,struct TreeNode* rrr){
if(lll==NULL && rrr==NULL)
return true;
if(lll==NULL || rrr==NULL || (lll->val != rrr->val))
return false;
return treavl(lll->left,rrr->right)&&treavl(lll->right,rrr->left);
}
if(root == NULL)
return true;
//if(root->left->val != root->right->val)
//return false;
return treavl(root->left,root->right);
}