将二叉树拆成链表
2016-04-25 12:35
274 查看
将二叉树拆成链表
描述笔记
数据
评测
将一棵二叉树按照前序遍历拆解成为一个
假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。
您在真实的面试中是否遇到过这个题?
Yes
注意事项
不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。
样例
1 \ 1 2 / \ \ 2 5 => 3 / \ \ \ 3 4 6 4 \ 5 \ 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public : /** * @param root: a TreeNode, the root of the binary tree * @return: nothing */ void flatten(TreeNode *root) { // write your code here if (root == NULL) return ; if (root->left == NULL) { flatten(root->right); return ; } //以下执行已能确保left不为空 TreeNode *tmp_left = root->left; TreeNode *tmp_right = root->right; flatten(tmp_left); flatten(tmp_right); root->left = NULL; root->right = tmp_left; //左子树转化好的链表走到右下底 while (tmp_left->right != NULL) tmp_left = tmp_left->right; tmp_left->right = tmp_right; } }; |
相关文章推荐
- MySQL表名不区分大小写的设置方法
- 二进制炸弹(第二次实验)
- C语言if语句
- Struts2配置默认action(首页)、配置404防止请求出错问题解决
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- java 面向对象之继承extends
- 算法学习笔记(一)-算法基础
- 详解Bootstrap网格系统
- 开发过程中自己遇到的异常(三)
- 62. Unique Paths
- 2016-4-25写完线程池的心得
- 解决 Android studio gradle 的 read-only property 'jniFolders' 编译错误
- [改善Java代码]避免对象的浅拷贝
- Response.End() VS Context.ApplicationInstance.CompleteRequest()
- linux运维安全工具集合[持续更新中..]
- Andorid 点击按钮事件叠加时候的事件分析。
- iOS获取网络图片计算其大小
- 随机3个或多个数组。
- 关于诚信: 建立建全社会的信用制度与体系,严惩欺骗等诚信缺失行为
- 关于诚信: 建立建全社会的信用制度与体系,严惩欺骗等诚信缺失行为