Flatten Binary Tree to Linked List
来源:互联网 发布:淘宝怎样寻找真实货源 编辑:程序博客网 时间:2024/04/29 07:04
问题明显递归操作比较简单,我们看下草图:
紫色矩形表示进行了相同处理后的结果,在链接root和左子树的时候是可以直接操作的,但是我们这么去链接左子树和右子树呢?应该是左子树中最后的那个结点跟右子树的root链接,所以我们需要去找到左子树的最后(最右)那个非空结点。
//code
class Solution {public:TreeNode *&link(TreeNode *&root){if(root == NULL || root->left == NULL && root->right == NULL) return root;TreeNode *root_left = NULL;TreeNode *root_right = NULL;root_left = link(root->left);root_right = link(root->right);if(root_left != NULL){TreeNode *tail = root_left;//find the last one of root->left.while(tail->right) tail = tail->right;tail->right = root_right;}elseroot_left = root_right;root->right = root_left;root->left = NULL;return root;}void flatten(TreeNode *root) {if(root == NULL) return;root = link(root);}};
这里我们借用了另一个函数,来形成递归。
0 0
- LeetCode: Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- [Leetcode] Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Leetcode: Flatten Binary Tree to Linked List
- leetcode Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- 【leetcode】Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- [LeetCode]Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- 我的2013--随便记录一下
- linux下nohup调用函数
- 【黑马训练营】在项目中使用配置文件
- Eclipse配合GDB和jlinkGDBServer仿真调试STM32
- php 异步调用方法
- Flatten Binary Tree to Linked List
- linux打开关闭端口
- 面向对象一点点
- 国内风寒感冒中成药到哪去了?
- 22 Recommendations For Building Effective High Traffic Web Software
- 学习目标的五个层次
- C#实现类似qq的屏幕截图程序
- inline函数
- 一套精美的私服发布网,适用任何游戏发布