leetCode(14):Invert Binary Tree and Same Tree

来源:互联网 发布:淘宝店铺怎么上架宝贝 编辑:程序博客网 时间:2024/05/18 18:42

反转二叉树:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if(root==NULL)    return NULL;    if(root->left==NULL && root->right==NULL)    return root;        TreeNode* tmpNode=root->right;    root->right=root->left;    root->left=tmpNode;    if(root->left)    {    root->left=invertTree(root->left);    }    if(root->right)    {    root->right=invertTree(root->right);    }    return root;    }};


判断是否是相同二叉树:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool isSameTree(TreeNode* p, TreeNode* q) {        if(p==NULL && q==NULL)    return true;    if(p==NULL || q==NULL)    return false;        if(p->val==q->val)    {    return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);    }    else    {    return false;    }    }};



0 0
原创粉丝点击