翻转二叉树-力扣

翻转二叉树,通过前序遍历的顺序,从根节点开始,将节点的左右子节点一次进行交换即可。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root == nullptr){
            return root;
        }
        TreeNode* temp = root->left;
        root->left = root->right;
        root->right = temp;

        invertTree(root->left);
        invertTree(root->right);
        return root;
    }
};

使用迭代的统一写法,前序遍历代码如下:

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        stack<TreeNode*> st;
        if(root != nullptr){
            st.push(root);
        }
        while(!st.empty()){
            TreeNode* cur = st.top();
            st.pop();
            if(cur != nullptr){
                //st.pop();
                if(cur->right != nullptr) {
                    st.push(cur->right);
                }
                if(cur->left != nullptr) {
                    st.push(cur->left);
                }
                st.push(cur);
                st.push(nullptr);
            } else {
                //st.pop();
                TreeNode * cur = st.top();
                st.pop();
                swap(cur->left, cur->right);
            }
        }
        return root;
    }
};

相关推荐

  1. 翻转-

    2024-06-08 20:12:02       29 阅读
  2. 第226题“翻转

    2024-06-08 20:12:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 20:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 20:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 20:12:02       82 阅读
  4. Python语言-面向对象

    2024-06-08 20:12:02       91 阅读

热门阅读

  1. 对称二叉树-力扣

    2024-06-08 20:12:02       30 阅读
  2. 【进程池与线程池 协程】

    2024-06-08 20:12:02       25 阅读
  3. Linux c fread/fseek 函数

    2024-06-08 20:12:02       34 阅读
  4. clickhouse去重复数据解决方案

    2024-06-08 20:12:02       32 阅读
  5. 零基础入门学习Python第二阶05MySQL详解01

    2024-06-08 20:12:02       37 阅读
  6. 360数字安全:2024年1月勒索软件流行态势分析报告

    2024-06-08 20:12:02       31 阅读
  7. 【名词解释】Unity中的Toggle组件及其使用示例

    2024-06-08 20:12:02       29 阅读
  8. mac m1使用docker安装mysql5.7,并且开启binlog

    2024-06-08 20:12:02       29 阅读
  9. 代码随想录35期总结

    2024-06-08 20:12:02       39 阅读