• leetcode226 翻转二叉树


     1 /*
     2  * @lc app=leetcode.cn id=226 lang=cpp
     3  *
     4  * [226] 翻转二叉树
     5  */
     6 
     7 // @lc code=start
     8 /**
     9  * Definition for a binary tree node.
    10  * struct TreeNode {
    11  *     int val;
    12  *     TreeNode *left;
    13  *     TreeNode *right;
    14  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    15  * };
    16  */
    17 class Solution {
    18 public:
    19 /*
    20 知道用递归,终止条件也知道,就是对与递归的过程不了解,还有返回值
    21 
    22 从根节点开始,递归地对树进行遍历,并从叶子结点先开始翻转。
    23 如果当前遍历到的节点 	extit{root}root 的左右两棵子树都已经翻转,
    24 那么我们只需要交换两棵子树的位置,即可完成以 	extit{root}root 为根节点的整棵子树的翻转。
    25 
    26 */
    27     TreeNode* invertTree(TreeNode* root) {
    28         if(root==nullptr)return nullptr;
    29         if(!root->left&& !root->right) return root;
    30         TreeNode* tmp1=invertTree(root->left);
    31         TreeNode* tmp2=invertTree(root->right);
    32         root->left=tmp2;
    33         root->right=tmp1;
    34         
    35         return root;
    36     }
    37 };
    38     
    39 // @lc code=end
  • 相关阅读:
    树:二叉树
    树:红黑树
    gtest
    VDB R&D
    QML 从入门到放弃
    json parse
    Effective C++ 笔记
    Samples topic
    C++ 11 snippets , 2
    C++ 11 snippets , 1
  • 原文地址:https://www.cnblogs.com/yaodao12/p/13956357.html
Copyright © 2020-2023  润新知