递归实现:

 1 /**
 2  * Definition of TreeNode:
 3  * class TreeNode {
 4  * public:
 5  *     int val;
 6  *     TreeNode *left, *right;
 7  *     TreeNode(int val) {
 8  *         this->val = val;
 9  *         this->left = this->right = NULL;
10  *     }
11  * }
12  */
13 class Solution {
14 public:
15     /**
16      * @param root: a TreeNode, the root of the binary tree
17      * @return: nothing
18      */
19     void invertBinaryTree(TreeNode *root) {
20         // write your code here
21         if (!root) return;
22         swap(root -> left, root -> right);
23         invertBinaryTree(root -> left);
24         invertBinaryTree(root -> right);
25     }
26 };

迭代实现:

 1 /**
 2  * Definition of TreeNode:
 3  * class TreeNode {
 4  * public:
 5  *     int val;
 6  *     TreeNode *left, *right;
 7  *     TreeNode(int val) {
 8  *         this->val = val;
 9  *         this->left = this->right = NULL;
10  *     }
11  * }
12  */
13 class Solution {
14 public:
15     /**
16      * @param root: a TreeNode, the root of the binary tree
17      * @return: nothing
18      */
19     void invertBinaryTree(TreeNode *root) {
20         // write your code here
21         if (!root) return;
22         queue<TreeNode*> level;
23         level.push(root);
24         while (!level.empty()) {
25             TreeNode* node = level.front();
26             level.pop();
27             swap(node -> left, node -> right);
28             if (node -> left) level.push(node -> left);
29             if (node -> right) level.push(node -> right);
30         }
31     }
32 };

[LintCode] 翻转二叉树相关推荐

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

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

  2. 翻转二叉树 c语言实现 递归 栈 队列

    前言 题目比较好理解,就是翻转二叉树 代码 c语言实现 #include<stdio.h> #include<stdlib.h> #include<string.h> ...

  3. 《LeetCode力扣练习》第226题 翻转二叉树 Java

    <LeetCode力扣练习>第226题 翻转二叉树 Java 一.资源 题目: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 示例 1: 输入:root = [4, ...

  4. 226. Invert Binary Tree 翻转二叉树

    翻转一棵二叉树. 示例: 输入: 4/ \2 7/ \ / \ 1 3 6 9 输出: 4/ \7 2/ \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 ...

  5. 翻转二叉树—leetcode226

    翻转一棵二叉树. 示例: 输入: 4    /   \   2     7  / \   / \ 1   3 6   9 输出: 4    /   \   7     2  / \   / \ 9   ...

  6. 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适

    题目 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适?(北京航空航天大学1999,北京工业大学2016) A. 前序 B. 中序 C. 后序 D. 层次 ...

  7. Python3实现翻转二叉树问题

    Python3实现翻转二叉树问题 翻转一棵二叉树. # 二叉树的结构如下 class TreeNode:def __init__(self, x):self.val = xself.left = No ...

  8. 【Leetcode | 48】226. 翻转二叉树

    翻转一棵二叉树. 示例: 输入: 4    /   \   2     7   / \   / \ 1   3 6   9 输出: 4    /   \   7     2   / \   / \ 9 ...

  9. LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一棵二叉树,请按以下要求的顺序收集它的全部节点: 依次从左到右,每次收集并删除所有的叶子节点 重复如上过程直到整棵树为空 示例: 输入: [1,2,3 ...

  10. LeetCode 156. 上下翻转二叉树(DFS)*

    文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉树,其中所有的右节点要么是具有兄弟节点(拥有相同父节点的左节点)的叶节点,要么为空 将此二叉树上下翻转并将它变成一棵树, 原来的右节点将转换成 ...

最新文章

  1. 盘点数据科学20个最好的Python库(附链接)
  2. 程序世界的秘密(中)
  3. 找出素数并升序排列c语言,习题:随机产生N个四位正整数,将其中的素数选出,并升序排列之输…...
  4. JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度
  5. java svg image xlink_SVG基础 | SVG image 元素
  6. IM、RTC技术两生花,看融云如何打造“IM+RTC+Push”一站式通信云服务
  7. asio c++20 协程在windows下和linux下设定
  8. bootstrap popover弹框内容换行
  9. 人生的一切问题,归根结底就是这三点:无知!恐惧!延迟!
  10. Spring整合mybatis
  11. ubuntu全版本安装 NVIDIA显卡驱动、以及重装、卸载
  12. 黄小宁罪大恶极!!!!!!!!!!黄小宁罪大恶极!!!!!!!!!!
  13. 浏览器中的js不能同步更新的解决方案
  14. Educational Codeforces Round 49 (Rated for Div. 2)切题报告
  15. 报错:实体名称必须紧跟在 '' 后面
  16. 嵌入式Linux驱动学习【9】—— Nor Flash
  17. Lesson 49 At the butcher's
  18. HTTP 协议中GET和POST到底有哪些区别
  19. openfoam计算旋转体滑移网格方法和MRF方法(附案例代码)
  20. CSDN 开始起航

热门文章

  1. leetcode刷题日记-leetcode刷题日记-71. 简化路径
  2. java ——线程与并行
  3. matlab保存每次循环的结果
  4. python socket 通信(2) 协程实现多人聊天室
  5. node解决request返回内容gzip乱码问题
  6. 利用composer搭建PHP框架(五.自动加载)
  7. AsyncTask--源码心得
  8. vue混入html,vue混入(mixins)的应用
  9. C++复习(五)(const、static、inline、引用与指针、new/delete)
  10. java paint方法_在Java中,为了使paint()方法执行,以下各项中,()是最佳的调用方法