【leetcode】Flatten Binary Tree to Linked List
2015-07-14 11:01
375 查看
前序遍历二叉树,并进行扁平化处理
#include<iostream> #include<vector> #include<deque> #include<stack> using namespace std; struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(NULL),right(NULL){}; }; class Solution { public: TreeNode* fun(TreeNode* root) { if(!root) return NULL; stack<TreeNode*>result; result.push(root); while(!result.empty()) { TreeNode* node=result.top(); result.pop(); if(node->right) result.push(node->right); if(node->left) result.push(node->left); node->left=NULL; if(!result.empty()) node->right=result.top(); } return root; } }; class Solution3 { public: void fun(TreeNode* root) { if(!root) return; vector<TreeNode*>result; result.push_back(root); while(!result.empty()) { TreeNode* node=result.back(); result.pop_back(); if(node->right) { result.push_back(node->right); node->right=NULL; } if(node->left) { result.push_back(node->left); node->left=NULL; } if(!result.empty()) node->right=result.back(); else node->right=NULL; } while(root) { cout<<root->val<<' '; root=root->right; } } }; void main() { TreeNode* node1=new TreeNode(1); TreeNode* node2=new TreeNode(2); TreeNode* node3=new TreeNode(3); TreeNode* node4=new TreeNode(4); TreeNode* node5=new TreeNode(5); TreeNode* node6=new TreeNode(6); TreeNode* node7=new TreeNode(7); node1->left=node2; node1->right=node3; node2->left=node4; node2->right=node5; /* node3->left=node6; node3->right=node7;*/ // Solution solution; //solution.recoverTree(node1); //solution.recover(node1); Solution solution; TreeNode* head; head=solution.fun(node1); while(head) { cout<<head->val<<' '; head=head->right; } }
相关文章推荐
- 页面中map接受用户输入
- 页面中map接受用户输入
- 页面中map接受用户输入
- 80x86寄存器详解
- Spring MVC 解读——@Autowired
- 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
- linux中的source、sh、bash、./命令
- x.509数字证书编码详解
- (转)GrabPass捕捉屏幕纹理
- Sort Colors
- 学习笔记
- Android网络通信:通过volley和gson获取聚合数据
- ibatis[mybatis]的安全加固
- SQL_常用函数
- css 圆角效果
- C语言时间处理实例分享
- (LeetCode)用两个栈实现一个队列
- MySql数据库迁移图文展示
- PAT 数据结构 08-排序5. Sort with Swap(0,*) (25)
- Unsupported Content Type