Leetcode: 226. Invert Binary Tree

这里空置了两个礼拜多,总之我要延毕了,怎麽说呢,大家都说延毕不是世界末日,我现在也接受这个说法了,不过还是希望自己这个小废物,能快点出社会哈哈。

思路

他说要反转一个二元树,我看起来像是本来Preorder这棵树,数值会由小到大,那我要的答案是:Preorder会变成由大到小。

要回传的是树的root。

乍一看,我想说感觉是可以同时分别去拜访左child跟右child,但想想感觉又好乱,继续盯着树看,感觉可以试试把每个点的link to child 都交换,直到没有child为止。

程序码

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        exchange(root);
        return root;
    }
private:
    void exchange(TreeNode* curr_node) {
        if (curr_node == NULL)
            return;
        TreeNode* temp = curr_node->left;
        curr_node->left = curr_node->right;
        curr_node->right = temp;
        exchange(curr_node->left);
        exchange(curr_node->right);
    }
};

应该说

开心,可能因为刷多了图论的题目,第二直觉的解法一次就通过了!(虽然这题是简单的)

参考:
https://ithelp.ithome.com.tw/articles/10278114


<<:  Day 44. 之後..

>>:  【从零开始的 C 语言笔记】第十五篇-String 函式库介绍与应用

自动化测试,让你上班拥有一杯咖啡的时间 | Day 7 - 如何写断言

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 在测试脚本加上断言後,当程序码有 ...

[Day26] 第二十六章-使用patch送出分数并且修改前端edit.blade.php

前言 昨天我们做了新增point表的判断 今天要正式在point表确认送出分数 并储存於资料库里了 ...

【第三十天 - 结尾】

不知不觉来到铁人赛的尾声了,此次系列文的初衷除了自我复习与归纳之前参加比赛的经验,也希望尽量统整一...

【第十八天 - 命令执行】

Q1. 什麽是命令执行 指令是与电脑互动的一种方式,一般来说作业系统会包含至少一个 Shell 程序...

Day 10 运算宝石:EC2 储存资源 Instance Store vs Elastic Block Storage (EBS)

现在我们来介绍 EC2 里面的 Instance Storage 与 EBS 的差别,那我们开始吧...