把二叉树先序遍历,变成一个链表,链表的next指针用right代替

用递归的办法先序遍历,递归函数要返回子树变成链表之后的最后一个元素

class Solution {
public:
void helper(TreeNode* cur, TreeNode*& tail){
//a(tail)
//lk("root",tail)
//a(cur)
//lk("root",cur)
//dsp
tail=cur;
TreeNode* right=cur->right;
//a(right)
//lk("root",right)
if(cur->left){
TreeNode *leftTail=NULL;
helper(cur->left, leftTail);
cur->right=cur->left;
cur->left=NULL;
tail=leftTail;
//dsp
} if(right){
TreeNode *rightTail=NULL;
helper(right, rightTail);
tail->right=right;
tail=rightTail;
//dsp
}
} void flatten(TreeNode* root) {
if(!root)
return;
//ahd(root) TreeNode *tail=NULL;
helper(root, tail);
}
};

程序运行动态演示:http://simpledsp.com/FS/Html/lc114.html

最新文章

  1. HTML基础知识
  2. PHP的ob_start()函数用法
  3. TAP/TUN(二)
  4. ios项目中安装和使用CocoaPods
  5. 几款开源的图形化Redis客户端管理软件
  6. PAT乙级 1004. 成绩排名 (20)
  7. golang执行linux命令
  8. GS玩家登录
  9. 在CENTOS下安装ORACLE 11g(LT项目开发参考)
  10. PHP之cookie相关实例教程与经典代码
  11. 关于asp.net core部署到iis中出现 HTTP Error 502.5 - Process Failure的问题
  12. linux shell编程指南第十八章------控制流结构
  13. 最想做的三个Delphi项目:Paint,IM,SQL,另外还有Smart,TMS,FMX,UML,FreePascal,Python4Delphi,Cheat Engine
  14. 【算法】赫夫曼树(Huffman)的构建和应用(编码、译码)
  15. 地址四级联动的vue组件
  16. Android开发之手把手教你写ButterKnife框架(三)
  17. idea使用配置
  18. rem 转 px
  19. python通过openpyxl操作excel
  20. PHP安装Eclipse与使用

热门文章

  1. HDU 1494 题解(DP)
  2. 欧拉函数&欧拉定理&降幂 总结
  3. selenium的常见异常
  4. 如何在CentOS 7上安装Node.js和npm
  5. Linux mint启用内核转储
  6. Simple Live System Using Nginx
  7. passwd - 密码文件
  8. 学Python的第六天
  9. c++函数参数或返回值为函数指针
  10. POJ 3889 Fractal Streets(逼近模拟)