38.交换二叉树中所有的左右节点

1.递归图解

一定要想着base case,也就是最基础的额情况,如右图,可以看到root->left =left = null,root->right = right = null,然后交换两个null的位置,返回中间这张图片,左下角的方框内就是刚刚做的操作也就是已经交换过了,当前处理的是中间图片的最上面的一个节点,left已经带回来了,处理完了,接下来处理 right = fun(root->right),又回到了右下角的basecase,同最右边的图片,递归着实很难理解,赛博鬼打墙了属于是,总结一句话,一定不要陷入细节中去,你的脑子是装不下那么多层的递归的,一定要从basecase出发,然后找到递归出口

2.代码

cpp 复制代码
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root==NULL){
            return NULL ;
        }
       TreeNode* left = invertTree(root->left);
       TreeNode* right = invertTree(root->right);
        root->left = right;
        root->right = left;
        return root;
    }
};
相关推荐
kimnoic4 小时前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
彭亚川Allen4 小时前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程
IT_陈寒4 小时前
别让Java字符串拼接偷偷吃掉你的内存
前端·人工智能·后端
_Evan_Yao4 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析
hudd6684 小时前
JavaEE 初阶 - 多线程(进阶)
java·开发语言·java-ee
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
kimnoic4 小时前
Python数据分析中正则表达式匹配字符串与常用函数示例详解
开发语言·python
软件技术NINI4 小时前
圣罗兰彩妆html+css 4页
前端·css·html
中屹指纹浏览器svip4 小时前
打开账号环境网页报错,常见原因有哪些?
服务器·开发语言·php·中屹指纹浏览器
朝朝辞暮i5 小时前
第 01 讲:Python 变量、对象、数据类型与内存引用
开发语言·python