首页 > 编程语言 > 详细

C语言递归之翻转二叉树

时间:2019-10-13 09:17:26      阅读:84      评论:0      收藏:0      [点我收藏+]

题目描述

翻转一棵二叉树。

 

示例

输入:

     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/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

C语言递归之翻转二叉树

原文:https://www.cnblogs.com/shi-champion/p/11664573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!