二叉树反转
来源:互联网 发布:软件设计师好过吗 编辑:程序博客网 时间:2024/06/03 20:51
/*
Invert a binary tree.
4
/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
*/
考虑两种情况
* 立即返回的情况--在root为空,或root的左右子树同时为空时才返回。
* 不立即返回的情况(只需要考虑树的二层,其它用递归)
* 把root的左子树invert,返回lefttree。
* 把root的右子树invert,返回righttree。
Invert a binary tree.
4
/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
*/
考虑两种情况
* 立即返回的情况--在root为空,或root的左右子树同时为空时才返回。
* 不立即返回的情况(只需要考虑树的二层,其它用递归)
* 把root的左子树invert,返回lefttree。
* 把root的右子树invert,返回righttree。
* 把root本身的左右子树互换,即root->left=righttree; root->right=lefttree;
#include<stdio.h>
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
struct TreeNode* invertTree(struct TreeNode* root) {
if (root == NULL || (root->left == NULL && root->right == NULL)) {
return root;
}
struct TreeNode* lefttree = invertTree(root->left);
struct TreeNode* righttree = invertTree(root->right);
root->left = righttree;
root->right = lefttree;
return root;
}
int main(int argc, char *argv[])
{
return 0;
}
0 0
- 反转二叉树
- 二叉树反转
- 反转二叉树,哈哈
- 反转二叉树
- 二叉树反转
- 二叉树反转
- 二叉树--反转
- 反转二叉树
- 反转二叉树
- 反转二叉树
- 反转二叉树
- 二叉树的反转
- 反转二叉树
- LeetCode:反转二叉树
- 反转二叉树
- 反转二叉树
- 反转二叉树
- java 反转二叉树算法
- 实例 6-5 “::”运算符【代码 6-6】 class_1.php
- eclipse svn同步时忽略某些文件类型和文件夹
- 全国城市二级联动js插件
- 第4课 :Spark Streaming的Exactly-One的事务处理和不重复输出彻底掌握
- 河南省第四届acm省赛 序号互换(进制转化)
- 二叉树反转
- C#中的引用传递、值传递。
- Spring结合java Quartz配置实例代码
- 如何配置Kettle集群运行环境
- 常用的一些工具网址
- 适配器模式
- No enclosing instance of type * is accessible.
- hduoj 不容易系列之一--1465
- BZOJ4384: [POI2015]Trzy wieże