LeetCode(114) Flatten Binary Tree to Linked List
2024-09-04 20:44:13
题目
分析
按要求转换二叉树;
分析转换要求,发现,新的二叉树是按照原二叉树的先序遍历结果构造的单支二叉树(只有右子树)。
发现规则,便容易处理了。得到先序遍历,构造即可。
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 || (!root->left && !root->right))
return;
preTraverse(root);
TreeNode *p = root;
//节点个数
int size = preT.size();
for (int i = 1; i < size; ++i)
{
p->left = NULL;
p->right = new TreeNode(preT[i]);
p = p->right;
}
}
public:
//先序遍历
vector<int> preT;
void preTraverse(TreeNode *root)
{
if (!root)
return;
preT.push_back(root->val);
preTraverse(root->left);
preTraverse(root->right);
}
};
最新文章
- ACM提交结果简介
- 14 Generator
- android的listview的详细用法
- 8-JS闭包、回调实例
- 深入浅出设计模式——策略模式(Strategy Pattern)
- ModelAttribute注解
- Unity3D 创建动态的立方体图系统
- Github、Jekyll 搭建及优化静态博客方法指南
- Backbone一些参考资源
- 关于a标签下的img元素在IE7下不能点击的问题
- Docker aufs存储驱动layer、diff、mnt目录的区别
- Swift4.0 Array详解
- django之快速分页
- 回归模型效果评估系列1-QQ图
- jQuery提示parsererror错误解决办法
- UNIX网络编程——僵尸进程
- centos7安装libgdiplus。netcore生成验证码,处理图片
- wait()和notify()的理解与使用
- cmd命令操作Oracle数据库
- Sparse AutoEncoder简介