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;
    }
};
相关推荐
陈随易1 小时前
前端大咖mizchi不满Rust、TypeScript却爱上MoonBit
前端·后端·程序员
whinc3 小时前
🚀 两年小程序开发,我把踩过的坑做成了开源 Skills
前端·微信小程序·ai编程
兆子龙4 小时前
ahooks useRequest 深度解析:一个 Hook 搞定所有请求
java·javascript
兆子龙4 小时前
React Suspense 从入门到实战:让异步加载更优雅
java·javascript
sure2824 小时前
React Native中创建自定义渐变色
前端·react native
KKKK4 小时前
SSE(Server-Sent Events)流式传输原理和XStream实践
前端·javascript
子兮曰5 小时前
Humanizer-zh 实战:把 AI 初稿改成“能发布”的技术文章
前端·javascript·后端
Din5 小时前
主动取消的防抖
前端·javascript·typescript
百度地图汽车版5 小时前
【AI地图 Tech说】第九期:让智能体拥有记忆——打造千人千面的小度想想
前端·后端