LeetCode114 Flatten Binary Tree to Linked List
2024-09-24 09:22:46
Given a binary tree, flatten it to a linked list in-place. (Medium)
For example,
Given
1
/ \
2 5
/ \ \
3 4 6
The flattened tree should look like:
1
\
2
\
3
\
4
\
5
\
6
分析:
将树的问题和链表插入问题结合。对于每个节点,寻找左子树的最右端,它应该是左子树前序遍历的最后一位,也就是生成链表中,右子树根节点的前一位。
按照链表插入的方法处理即可。
代码:
/**
* 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;
}
while (root != nullptr) {
if (root -> left != nullptr) {
TreeNode* temp = root -> left;
while (temp -> right != nullptr) {
temp = temp -> right;
}
temp -> right = root -> right;
root -> right = root -> left;
root -> left = nullptr;
}
root = root -> right;
}
}
};
最新文章
- 详解一个自己原创的正则匹配IP的表达式
- simple demo how to get the list of online users
- 创建对象为什么要 init?
- WEB前端性能优化:HTML,CSS,JS和服务器端优化
- 原生js实现addClass,removeClass,hasClass方法
- [Unity3D]Unity3D游戏开发Android内嵌视图Unity查看
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
- 蜻蜓FM 涉嫌诈骗投资人和广告主源代码剖析
- treeview调用数据库成树
- C#异步编程----Thread
- 用tornado实现图片标记
- 【Redis篇】Redis集群安装与初始
- Electron入门笔记(一)-自己快速搭建一个app demo
- python之组合与重用性
- 开始写博客,学习Linq(2)
- Luogu4980 【模板】Polya定理(Polya定理+欧拉函数)
- PHP 配置默认SSL CA证书
- 把 Reative Native 47 版本集成到已有的 Native iOS 工程中
- mysql 中显示 table 的基本信息
- August 13th 2017 Week 33rd Sunday