博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
阅读量:4197 次
发布时间:2019-05-26

本文共 1197 字,大约阅读时间需要 3 分钟。

一天一道LeetCode

本系列文章已全部上传至我的github,地址:

欢迎大家关注我的新浪微博,
欢迎转载,转载请注明出处

(一)题目

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

(二)解题

题目大意:将一个二叉树转换成平树(google来的翻译)

看图就大概知道题目的意思了。
解题思路:flattened 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* newroot = NULL;//新树的根节点    TreeNode* p = newroot;//循环中间变量    void flatten(TreeNode* root) {        if(root==NULL) return;        preorder(root);//前序遍历        //这里有个疑惑:为什么roor=newroot不行?        root->right = newroot->right;        root->left = NULL;    }    void preorder(TreeNode* root)//中序遍历    {        TreeNode* temp = new TreeNode(root->val);        if(newroot==NULL) newroot=temp;//保存根节点        else p->right=temp;//构造右子树        p = temp;        if(root->left!=NULL) preorder(root->left);        if(root->right!=NULL) preorder(root->right);    }};
你可能感兴趣的文章
Spring MVC 教程,快速入门,深入分析
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>