AIAS编程有道
AIASPerfect Programming
日期:2019年8月15日
正文:894字 0 图
预计阅读时间:4分钟
来源:原创
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:
源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
解题思路
通过对以上两棵树的观察,我们可以总结出这两棵树的根节点相同,但它们的左、右两个子节点交换了位置。所以我们可以得出求一棵树的镜像的过程:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。
参考代码
classTreeNode{
intval=;
TreeNodeleft=null;
TreeNoderight=null;
publicTreeNode(intval) {
this.val=val;
}
}
publicclassSolution{
publicvoidMirror(TreeNoderoot) {
if(root==null)
return;
// 当前没有叶子节点,直接返回
if(root.left==null&&root.right==null)
return;
TreeNodetemp=root.left;
root.left=root.right;
root.right=temp;
// 递归调换位置
if(root.left!=null) {
Mirror(root.left);
}
if(root.right!=null) {
Mirror(root.right);
}
}
}
# -*- coding:utf-8 -*-
classTreeNode:
def__init__(self,x):
self.val=x
self.left=None
self.right=None
classSolution:
# 返回镜像树的根节点
defMirror(self,root):
ifrootisnotNone:
root.right,root.left=root.left,root.right
self.Mirror(root.left)
self.Mirror(root.right)
每次学一点专业英语
generative approach 生成方法
generative model 生成模型
instance 实例
potential function势函数
output space 输出空间
THE END
不需要你是一个很强的人,不需要你很高智商,不需要你是千里马,你只要像老黄牛一样,每天哪怕做一点点,往目标前进一点点,你就会成功。可是成功又很难,因为在通往成功的路上,很少人能够坚持下来。在坚持的过程中,很多人都选择了放弃。
它,不仅仅是一个码,更是一个了解算法、数学、编程、技巧等等一些神器的一道门!
领取专属 10元无门槛券
私享最新 技术干货