解(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;
};

算法 --- 翻转二叉树相关推荐

  1. Java算法——翻转二叉树(LeetCode第226题)

    问题描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 示例 分析 自顶向下递归交换每个结点的左右子树,便可将整棵树翻转. 代码实现 class Solution {publi ...

  2. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  3. 领扣LintCode算法问题答案-175. 翻转二叉树

    领扣LintCode算法问题答案-175. 翻转二叉树 目录 175. 翻转二叉树 鸣谢 175. 翻转二叉树 翻转一棵二叉树.左右子树交换. 样例 1: 输入: {1,3,#} 输出: {1,#,3 ...

  4. 代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2

    代码随想录算法训练营第十五天 | 层序遍历 10,226.翻转二叉树,101.对称二叉树 2 1.1 层序遍历 10 1.1.1 102.二叉树的层序遍历 思路: 通过队列实现 class Solut ...

  5. java 反转二叉树 非递归_【刷算法】翻转二叉树的递归和非递归解法

    题目描述 操作给定的二叉树,将其变翻转为源二叉树的镜像. 输入描述: 1 1 / \ / \ 2 3 ------> 3 2 / \ / \ / \ / \ 4 5 6 7 7 6 5 4 解题 ...

  6. 代码随想录算法训练营第15天,102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

    102.二叉树的层序遍历.226.反转二叉树.101.对称二叉树 102.二叉树的层序遍历 二叉树的层次遍历,我们可以定义一个队列, 当访问到某一个节点时,我们将它存在的左右节点放入队列中,便可达到按 ...

  7. 代码随想录算法训练营day15 | 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

    102. 二叉树的层序遍历 class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {de ...

  8. 代码随想录算法训练营Day15|Leetcode102二叉树的层序遍历、Leetcode226翻转二叉树、Leetcode101对称二叉树

    Day15打卡! 时长:2h 今日感想:今天主要学习了二叉树层次遍历的思路方法和应用.题目看似简单,实则有很多细节,有时间可以做做其他相似的推荐题目~ Leetcode102 二叉树的层序遍历 题目链 ...

  9. 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树

    递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...

最新文章

  1. Hadoop运行模式 之 本地运行模式
  2. 【Manning新书】Kafka实战
  3. Python学习笔记:面向对象高级编程(中上)
  4. 零售业去“O”,不可逆之变
  5. 51单片机实现三位十进制数加减乘除运算
  6. 选择不相交区间(贪心算法) By ACReaper
  7. 使用HanLP增强Elasticsearch分词功能
  8. 拍照购物APP之可行性分析
  9. # 20180908 2018-2019-2 《密码与安全新技术专题》第9周作业
  10. ACM 竞赛高校联盟 练习赛 第六场 韩梅梅的抽象画(图论水题)
  11. mysql——数据库事务(C#代码)
  12. 【codevs2485】七夕祭(贪心,环形纸牌均分)
  13. Android 关机(reboot)流程 -- sys.powerctl
  14. Mac OS 下安装wget
  15. requests库及相关知识点(get,post区别,params与data区别)
  16. c++实现课程管理系统
  17. 点集求最小包围盒OBB算法
  18. 二维数组传参,用int指针接收
  19. 医院子母钟时钟系统可选方案
  20. python del语句

热门文章

  1. alchemy php,Flask SQLAlchemy
  2. mysql 对已有表分区_mysql怎么对先有表进行分区
  3. vue created 调用方法_vue 基础-生命周期 lifecycle 的执行顺序和作用
  4. 光遇服务器维护都在干什么,光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔...
  5. 局域网win7计算机如何互访,局域网win7电脑的互访步骤
  6. 李宏毅机器学习课程5~~~分类:逻辑回归
  7. iOS下载大型文件原理解析三
  8. .net core WebApi 使用Swagger生成API文档
  9. Springboot项目修改html后不需要重启---springboot项目的热部署
  10. mysql show 语句大全