二叉树-226.翻转链表-力扣(LeetCode)

一、题目解析

翻转可以理解为树的左右子树交换,从根到叶子节点,但是这里交换的是链接的指针,而不是单纯的交换值,当出现nullptr时,也是可以交换链接的,交换值的话就不行了。

二、算法原理

依旧的递归,但是我们需要更改指针的链接,所以我们需要保存递归时左右指针,用于交换链接。

根据递归顺序,先将左树交换,然后交换右数,最后将根的链接改变,原来的左变为翻转后的右,右边同理。

三、代码示例

cpp 复制代码
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root == nullptr) return nullptr;
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        root->left = right;
        root->right = left;
        return root;
    }
};

四、递归展开图

看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见!

相关推荐
踩坑记录1 小时前
leetcode hot100 3.无重复字符的最长子串 medium 滑动窗口(双指针)
python·leetcode
Z1Jxxx1 小时前
01序列01序列
开发语言·c++·算法
坚定学代码2 小时前
基于观察者模式的ISO C++信号槽实现
开发语言·c++·观察者模式·ai
ha20428941942 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
Doro再努力3 小时前
【数据结构08】队列实现及练习
数据结构·算法
AI视觉网奇4 小时前
ue5 插件 WebSocket
c++·ue5
左直拳4 小时前
将c++程序部署到docker
开发语言·c++·docker
恒者走天下4 小时前
AI智能体通讯项目(底层AI通讯协议实现)
c++
英雄各有见4 小时前
Chapter 5.1.1: 编写你的第一个GPU kernel——Cuda Basics
c++·gpu·cuda·hpc
清铎4 小时前
leetcode_day12_滑动窗口_《绝境求生》
python·算法·leetcode·动态规划