LeetCode: 114. Flatten Binary Tree to Linked List

LeetCode: 114. Flatten Binary Tree to Linked List

题目描述

Given a binary tree, flatten it to a linked list in-place.

For example,
Given

         1
        / \        2   5
      / \   \      3   4   6

The flattened tree should look like:

   1
    \      2
      \        3
        \          4
          \            5
            \              6

题目大意: 将给定的二叉树拉直成链表形式。

解题思路 —— 递归求解

先将左子树和右子树拉直成链表形式,然后将它们合并成一条链表。如:

  • 原始二叉树

  • flatten(root->left): 拉直左子树

  • flatten(root->right):拉直右子树

  • 合并左右子树
    将右子树链接到左子树

    将左子树移动到右边

AC 代码

/** * 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:
    void flatten(TreeNode* root) {
        if(root == nullptr) return;

        // 分别对左右孩子处理
        flatten(root->left);
        flatten(root->right);

        // 将右边孩子链接在左孩子后面
        // 然后将左孩子移到右边
        TreeNode** leftChildTreeLeaf = &(root->left);
        while(*leftChildTreeLeaf != nullptr)
        {
            leftChildTreeLeaf = &(*leftChildTreeLeaf)->right;
        }
        *leftChildTreeLeaf = root->right;
        root->right = root->left;
        root->left = nullptr;
    }
};
全部评论

相关推荐

牛客28967172...:跟着卡子哥才是正道,灵茶属实不太行
点赞 评论 收藏
分享
04-19 18:50
已编辑
长沙学院 Java
个人背景:学院二本计科专业 大二开始实习个人经历:安克创新 、理想汽车、字节跳动碎碎念:我做事只有三分钟热度。看到进了大厂的同学,我会羡慕,也会跟着努力上进;但遇到好看的小说,我又会放下手头的事沉迷其中,之前的坚持也就中断了。我有些自卑,总觉得自己学历和外貌都不够好。之前偶然在网上受到关注,我就喜欢上了上网,因为这里有很多人认可我。但我也很在意别人的评价,偶尔看到嘲讽的言论,会触发我的自卑情绪,让我感到愤怒。有时候我会强硬地回怼,有时候又会懦弱地选择无视。我也有虚荣心。不管是拿到安克、理想还是字节的机会,我在分享的时候都会带着这份心思。我会特意强调自己学历不好,是为了衬托出过程的艰难,以此显得自己更厉害。我知道,人往往会炫耀自己缺少的东西,来掩盖内心的空洞。我总想着走捷径,不太喜欢踏踏实实地做事。找实习的时候,我花了更多时间在研究面试技巧上,而不是提升专业能力。我会反复听面试录音分析技巧,看面试教程学习怎么和不同的面试官沟通,还会每天自言自语练习语言表达,同学都觉得我有点奇怪。我的实习生涯里,侥幸和运气占了很大一部分。我总在想,如果有一天我失去了这份幸运,这些特质可能会让我一蹶不振。ps: 很多人会问我学习路线和经验 但是就像我上面说的 我的实习过程靠的很多是关键节点的运气 技术上面我可能不如很多人  所以请大家理性求助和理性参考我的回答 附上我的投递记录
我的offer在哪里...:从去年看到现在,飞升哥就是榜样
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务