首页
学习
活动
专区
工具
TVP
发布

二叉树的镜像

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

不需要你是一个很强的人,不需要你很高智商,不需要你是千里马,你只要像老黄牛一样,每天哪怕做一点点,往目标前进一点点,你就会成功。可是成功又很难,因为在通往成功的路上,很少人能够坚持下来。在坚持的过程中,很多人都选择了放弃。

它,不仅仅是一个码,更是一个了解算法、数学、编程、技巧等等一些神器的一道门!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190815A005BB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券