题目描述

翻转一棵二叉树。

 

示例

输入:

     4
   /   
  2     7
 /    / 
1   3 6   9

输出:

     4
   /   
  7     2
 /    / 
9   6 3   1

 

题目要求

 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 struct TreeNode* invertTree(struct TreeNode* root){
11 
12 }

 

题解

 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 struct TreeNode* invertTree(struct TreeNode* root){
11     if(root==NULL)return root;
12     struct TreeNode *r=(struct TreeNode*)malloc(sizeof(struct TreeNode));
13     r->val=root->val;
14     if(root->left!=NULL)r->right=invertTree(root->left);
15     else r->right=NULL;
16     if(root->right!=NULL)r->left=invertTree(root->right);
17     else r->left=NULL;
18     return r;
19 }
题解

 

递归

递归需要明确终止条件、返回值、递归内容,二叉树问题还需注意根节点为空的特殊情况。

 

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!