zoukankan      html  css  js  c++  java
  • [LintCode] 翻转二叉树

    递归实现:

     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 };
  • 相关阅读:
    漫谈C语言结构体
    如何理解c和c++的复杂类型声明
    STM32 时钟系统
    STM32 系统架构
    运放参数的详细解释和分析-part1,输入偏置电流和输入失调电流【转】
    ROM、RAM、DRAM、SRAM、FLASH的区别?
    FATFS模块应用笔记
    关于I2C和SPI总线协议【转】
    USB编程概念
    Ubuntu手机识别
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4605618.html
Copyright © 2011-2022 走看看