博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 之 JavaScript 解答第226题 —— 翻转二叉树(Invert Binary Tree)
阅读量:7175 次
发布时间:2019-06-29

本文共 866 字,大约阅读时间需要 2 分钟。


Time:2019/4/21

Title: Invert Binary Tree
Difficulty: Easy
Author: 小鹿


题目:Invert Binary Tree(反转二叉树)

Invert a binary tree.

反转二叉树

Example:

Input:

4   /   \  2     7 / \   / \1   3 6   9复制代码

Output:

4   /   \  7     2 / \   / \9   6 3   1复制代码

Solve:

▉ 问题分析

由上图可以分析反转二叉树,只是对左右子树的数据进行交换,再仔细观察,并不是每个节点的左右子树进行交换,而是左子树的叶子节点和右子树的叶子节点进行交换,另外两个子节点进行交换,那我们不得不用到递归了。

▉ 算法思路

1)判断树是否为空(同时也是终止条件)。

2)左右子树结点交换。

3)分别对左右子树进行递归。

▉ 代码实现
var invertTree = function(root) {    //判断当前树是否为 null    if(root == null) return root;	//左右子树结点交换    let right = root.right;    let left = root.left;    root.right = left;    root.left = right;	//分别对左右子树进行递归    invertTree(left);    invertTree(right);    //返回树的根节点    return root;};复制代码

欢迎一起加入到 LeetCode 开源 Github 仓库,可以向 me 提交您其他语言的代码。在仓库上坚持和小伙伴们一起打卡,共同完善我们的开源小仓库! Github:https://github.com/luxiangqiang/JS-LeetCode

欢迎关注我个人公众号:「一个不甘平凡的码农」,记录了自己一路自学编程的故事。

转载地址:http://srdzm.baihongyu.com/

你可能感兴趣的文章
Python的sys.argv使用说明 通过终端写入环境变量
查看>>
在Windows上安装Nexus
查看>>
Future模式 总结
查看>>
为什么我再也不想和 Google HR 交谈了
查看>>
byzx
查看>>
虫洞漏洞挖掘研究
查看>>
用mysql查询某字段是否有索引
查看>>
ubuntu 查看进程,查看服务
查看>>
Cisco DHCP Snooping + IPSG 功能实现
查看>>
Linux命令_用户身份切换
查看>>
学习在.NET Core中使用RabbitMQ之启动和基础(一)
查看>>
支付业务的数据库表的设计
查看>>
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)...
查看>>
PHP 16 个编程法则
查看>>
【微信】2.微信小程序开发--官方开发工具使用说明
查看>>
RedisTemplate访问Redis数据结构
查看>>
面试如何回答优化数据库
查看>>
SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
查看>>
ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查
查看>>
js如何返回两个数的商的整数和余数部分?
查看>>