C语言递归之翻转二叉树
2024-10-06 20:22:37
题目描述
翻转一棵二叉树。
示例
输入:
/ \ / \ / \
输出:
/ \ / \ / \
题目要求
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/ struct TreeNode* invertTree(struct TreeNode* root){ }
题解
/**
* 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 root;
struct TreeNode *r=(struct TreeNode*)malloc(sizeof(struct TreeNode));
r->val=root->val;
if(root->left!=NULL)r->right=invertTree(root->left);
else r->right=NULL;
if(root->right!=NULL)r->left=invertTree(root->right);
else r->left=NULL;
return r;
}
题解
递归
递归需要明确终止条件、返回值、递归内容,二叉树问题还需注意根节点为空的特殊情况。
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
最新文章
- Single Responsibility Principle 单一职责原则
- Android九宫格界面实现点击每个格点击跳转界面
- git之远程标签下载(远程分支)
- 数据结构和算法 – 11.高级排序算法(下)
- [SAP ABAP开发技术总结]逻辑数据库
- 347. Top K Frequent Elements
- bzoj 1041: [HAOI2008]圆上的整点 数学
- tornado学习精要
- c# Unicode字符串的解码
- Nuget 学习三
- 网页头部 lang的声明
- linux 访问到对应的接口
- PHP算法学习(6) 单向链表 实现栈
- 软件测试_Linux
- c# 制作弹窗
- Dinic算法——重述
- Intel 设计缺陷背后的原因是什么? | Linux 中国
- ARM的Trust Zone技术
- VNC的安装和常用命令
- Metro Revealed: Building Windows 8 apps with XAML and C# 阅读笔记