算法 --- 翻转二叉树
解(C++):
1.二叉树判空 if(root == 0) 或 if(root == nullptr);
2.二叉树的左子树: root->left .
3.使用递归,将当前根节点的左右指针指向互换左向右子树(此时右子树也进行了翻转)
// C++
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* invertTree(TreeNode* root) {if(root == 0)return root;TreeNode* temp = root->left;root->left = invertTree(root->right);root->right = invertTree(temp);return root;}
};
解(JavaScript): 每次对根做处理,若根非空,判断左右子树是否全为空,若有一个不为空,交换左右子树的指向,并翻转左右子树
/*** Definition for a binary tree node.* function TreeNode(val) {* this.val = val;* this.left = this.right = null;* }*/
/*** @param {TreeNode} root* @return {TreeNode}*/
var invertTree = function(root) {if(root){if(root.left || root.right) {var l = root.left;var r = root.right;root.right = l;root.left = r;invertTree(l);invertTree(r);}return root;
};
算法 --- 翻转二叉树相关推荐
- Java算法——翻转二叉树(LeetCode第226题)
问题描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 示例 分析 自顶向下递归交换每个结点的左右子树,便可将整棵树翻转. 代码实现 class Solution {publi ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- 领扣LintCode算法问题答案-175. 翻转二叉树
领扣LintCode算法问题答案-175. 翻转二叉树 目录 175. 翻转二叉树 鸣谢 175. 翻转二叉树 翻转一棵二叉树.左右子树交换. 样例 1: 输入: {1,3,#} 输出: {1,#,3 ...
- 代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2
代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2 1.1 层序遍历 10 1.1.1 102.二叉树的层序遍历 思路: 通过队列实现 class Solut ...
- java 反转二叉树 非递归_【刷算法】翻转二叉树的递归和非递归解法
题目描述 操作给定的二叉树,将其变翻转为源二叉树的镜像. 输入描述: 1 1 / \ / \ 2 3 ------> 3 2 / \ / \ / \ / \ 4 5 6 7 7 6 5 4 解题 ...
- 代码随想录算法训练营第15天,102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树
102.二叉树的层序遍历.226.反转二叉树.101.对称二叉树 102.二叉树的层序遍历 二叉树的层次遍历,我们可以定义一个队列, 当访问到某一个节点时,我们将它存在的左右节点放入队列中,便可达到按 ...
- 代码随想录算法训练营day15 | 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树
102. 二叉树的层序遍历 class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {de ...
- 代码随想录算法训练营Day15|Leetcode102二叉树的层序遍历、Leetcode226翻转二叉树、Leetcode101对称二叉树
Day15打卡! 时长:2h 今日感想:今天主要学习了二叉树层次遍历的思路方法和应用.题目看似简单,实则有很多细节,有时间可以做做其他相似的推荐题目~ Leetcode102 二叉树的层序遍历 题目链 ...
- 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树
递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...
最新文章
- Hadoop运行模式 之 本地运行模式
- 【Manning新书】Kafka实战
- Python学习笔记:面向对象高级编程(中上)
- 零售业去“O”,不可逆之变
- 51单片机实现三位十进制数加减乘除运算
- 选择不相交区间(贪心算法) By ACReaper
- 使用HanLP增强Elasticsearch分词功能
- 拍照购物APP之可行性分析
- # 20180908 2018-2019-2 《密码与安全新技术专题》第9周作业
- ACM 竞赛高校联盟 练习赛 第六场 韩梅梅的抽象画(图论水题)
- mysql——数据库事务(C#代码)
- 【codevs2485】七夕祭(贪心,环形纸牌均分)
- Android 关机(reboot)流程 -- sys.powerctl
- Mac OS 下安装wget
- requests库及相关知识点(get,post区别,params与data区别)
- c++实现课程管理系统
- 点集求最小包围盒OBB算法
- 二维数组传参,用int指针接收
- 医院子母钟时钟系统可选方案
- python del语句
热门文章
- alchemy php,Flask SQLAlchemy
- mysql 对已有表分区_mysql怎么对先有表进行分区
- vue created 调用方法_vue 基础-生命周期 lifecycle 的执行顺序和作用
- 光遇服务器维护都在干什么,光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔...
- 局域网win7计算机如何互访,局域网win7电脑的互访步骤
- 李宏毅机器学习课程5~~~分类:逻辑回归
- iOS下载大型文件原理解析三
- .net core WebApi 使用Swagger生成API文档
- Springboot项目修改html后不需要重启---springboot项目的热部署
- mysql show 语句大全