114. 二叉树展开为链表

给定一个二叉树,原地将它展开为链表。

例如

给定二叉树
    1
   / \
  2   5
 / \   \
3   4   6
将其展开为:
1
 \
  2
   \
    3
     \
      4
       \
        5
         \
          6

代码

class Solution {
public:
    void flatten(TreeNode *root) {
        if (!root) return;
        if (root->left) flatten(root->left);
        if (root->right) flatten(root->right);
        TreeNode *tmp = root->right;
        root->right = root->left;
        root->left = NULL;
        while (root->right) root = root->right;
        root->right = tmp;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,489评论 1 31
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,979评论 0 13
  • 一起快樂出發! 【盛世贏家】 幸福智慧人生締造者 傑出企業家鍛造系統 百年名族品牌孵化器 何龍——一個充滿能量、用...
    盛世贏家何龍阅读 165评论 0 0
  • 1.标题 6.标题 引用 HTML链接 网页三剑客 HTML CSS Javascript
    消暑绿豆汤阅读 200评论 0 0
  • 动态二维数组赋值 一开始是不是觉得很简单的事情,但是你是不是来百度了,是不是。。 这也没什么的,程序员天天在解决...
    你的益达233阅读 3,597评论 0 0