博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Flatten Binary Tree to Linked List
阅读量:6338 次
发布时间:2019-06-22

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

1 迭代,重要关系  

p->right = s.top();

 

1 class flat{ 2     public: 3         void flatten(TreeNode* root) { 4             if (root == NULL) return; 5             stack
s; 6 s.push(root); 7 while (!s.empty()) { 8 TreeNode *p = s.top(); 9 s.pop();10 if (p->right)11 s.push(p->right);12 if (p->left)13 s.push(p->left);14 p->left = NULL;15 if (!s.empty())16 p->right = s.top();17 }18 }19 };

 

2 递归 

思路:

1 搞定左边

2 搞定右边

3 将左边的插入到root 和right中间

  3.1 找到左边的最后一个节点 left_most

  3.2 left_most->right = root->right;

  3.3 root->right = left

 

1 class flat{ 2     public: 3             void  flatten_rec(TreeNode* root) { 4             if (root == NULL) return; 5             if(root->left == NULL && root->right == NULL) 6                 return ; 7  8             flatten_rec(root->left); 9             flatten_rec(root->right);10             11             TreeNode * left_most = root->left;12             while(left_most && left_most->right)13             {14                 left_most = left_most->right;15             }16             if(root->left != NULL)17             {18                 left_most->right = root->right;19                 root->right = root->left;20             }21 22             root->left = NULL;23             return ;24 25         }26 };

 

 

转载地址:http://yfaoa.baihongyu.com/

你可能感兴趣的文章
Unity链接SqlServer数据库并进行简单的数据查询
查看>>
23种设计模式
查看>>
原生javascript学习:用循环改变div颜色
查看>>
ABBYY FineReader 12内置的自动化任务
查看>>
ab 测试 和 apache 修改 并发数 mpm
查看>>
Nginx 的软件负载均衡详解
查看>>
TIMED OUT WAITING FOR OHASD MONITOR
查看>>
有关Last-Modified 与 If-Modified-Since
查看>>
Tomcat 内存溢出,堆栈配置各种调整
查看>>
过滤器
查看>>
聊聊MongoDB(二)MongoDB3.2架构分析
查看>>
双层异构防火墙
查看>>
NFS、FTP、SAMBA服务搭建
查看>>
如何让系统不显示administrator这个用户名,只显示我自己输入的用户名?
查看>>
IOS获取图片音频方法----UIImagePickerController
查看>>
在LINUX中部署sendmail 服务器(邮件服务器)
查看>>
用Shader做动画
查看>>
vsftpd 总结(centos6.5_X64)
查看>>
rSync服务器实现不同平台下备份数据
查看>>
检查服务器各类信息脚本
查看>>