美文网首页首页投稿(暂停使用,暂停投稿)程序员
世界名题.反转二叉树 226Invert Binary Tree

世界名题.反转二叉树 226Invert Binary Tree

作者: SweetBecca | 来源:发表于2016-07-19 00:32 被阅读1413次

    今天碰到了世界名题:反转二叉树。

    名题的由来,是一个著名程序员去谷歌面试因为不会反转二叉树被拒,
    Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.


    这道题的意思很简单:
    Invert a binary tree.
    4
    /
    2 7
    / \ /
    1 3 6 9
    to
    4
    /
    7 2
    / \ /
    9 6 3 1

    我以为很难,原来还是递归

    网友说,递归不难,是一种思想。我认同,原来认为递归难,是因为还不具备用递归解决问题的习惯和思维方式。一旦把问题交给递归解决,发现竟然很省心。对,就是省心二字。

    递归说:反转二叉树,就是把每个节点左右换一下

    看到能用到每个这个词的时候,似乎就能看到递归的曙光了。

    今天没有用电脑,纯手机浏览器刷题,而且看不到runcode结果的对比,只能直接提交测试,第三次提交AC,很开心!

    贴图一张,纪念第一次纯手机刷过:


    世界名题.反转二叉树 226Invert Binary Tree

    最后贴俺手机敲的递归代码:

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

    以后我打算在这里,随着刷题,每天也记录下代码以外的我真实的生活中经历的人生感悟或故事。
    相当于文艺作品中插播代码~

    今言有二:

    1. 一天过后,傍晚搭乘十几块钱的优步,拼着车,逛着北京去望京,旁边坐着长相还不错的专职司机,我带着耳机,听着音乐,微信里聊着天。吹着小风,吃着好炖,手机刷题,或许这就是一天中最惬意的时刻。

    2. 我发现这段时间是神在磨练我不足的性格的时期。借着我和姊妹们日常的交往和碰撞,让我越发的发现自己性格的不足。我行我素惯了,不懂得尊重他人和体谅他人。很多时候出于无心,却表现为有意。每天多为旁人考虑一点,你好我也好。

    相关文章

      网友评论

        本文标题:世界名题.反转二叉树 226Invert Binary Tree

        本文链接:https://www.haomeiwen.com/subject/zprmjttx.html