Invert a binary tree

来源:互联网 发布:不要网络的混乱大枪战 编辑:程序博客网 时间:2024/05/22 18:55

Invert a binary tree

Invert a binary tree.

For example

     4   /   \  2     7 / \   / \1   3 6   9

to

     4   /   \  7     2 / \   / \9   6 3   1


思路

感觉自己一直把问题想复杂啊


代码1

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     struct TreeNode *left; *     struct TreeNode *right; * }; */struct TreeNode* invertTree(struct TreeNode* root) {    struct TreeNode *t,*t1,*t2;    if(root == NULL)        t = NULL;    else    {        t = (struct TreeNode*)malloc(sizeof(struct TreeNode));        t->val = root->val;  //复制根节点        t1 = invertTree(root->left);        t2 = invertTree(root->right);        t->left = t2;        t->right = t1;        return t;    }}

代码2

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     struct TreeNode *left; *     struct TreeNode *right; * }; */struct TreeNode* invertTree(struct TreeNode* root) {    if(root == NULL)        return NULL;    else{        struct TreeNode* tmp = root->left;        root-> left = invertTree(root->right);        root->right = invertTree(tmp);        return root;    }}

这个else也可以去掉,因为已经return了

0 0
原创粉丝点击