LeetCode No.114 Flatten Binary Tree to Linked List
来源:互联网 发布:c语言详解 编辑:程序博客网 时间:2024/05/21 14:53
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
====================================================================================
题目链接:https://leetcode.com/problems/flatten-binary-tree-to-linked-list/
题目大意:将二叉树按照先序遍历的顺序转换成一个只有右子树的二叉树(一条链表),要求空间复杂度为O(1)。
思路1:通过先序遍历边搜边转换,由于过程的操作有点复杂,我选择用另外一种做法。
思路2:递归调用,假设函数flattenTree能符合题意地转成一棵新的二叉树树,则root节点的右子树等于flattenTree(root的左子树),转换完之后左子树的最后一个节点的右子树为等于flattenTree(root的右子树),同时root的左子树为NULL。
附上代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: void flatten(TreeNode* root) { if ( root == NULL ) return ; root = flattenTree ( root ) ; } TreeNode* flattenTree ( TreeNode* root ) { if ( root == NULL ) return root ; if ( root -> left == NULL ) { root -> right = flattenTree ( root -> right ) ; return root ; } TreeNode* temp = root -> right ; root -> right = flattenTree ( root -> left ) ; TreeNode* t = root ; while ( t -> right != NULL ) t = t -> right ; t -> right = flattenTree ( temp ) ; root -> left = NULL ; return root ; }};
0 0
- LeetCode No.114 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
- [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
- 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
- [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
- LeetCode:Flatten Binary Tree to Linked List
- 【NOIp复习】数据结构之栈、队列和二叉树
- spring调度器的配置 ,s2sm
- 第十周项目
- 第十周实践项目之计算个人所得税
- 从oracle数据库中把表结构导入到powerDesigner
- LeetCode No.114 Flatten Binary Tree to Linked List
- fastdfs 全测试
- zookeeper 在client端dos界面命令行大全
- Core Java Volume I - Fundamentals (10th) 1-8章 阅读笔记
- 第十周-收税
- HDU 1272 小希的迷宫 基础并查集★
- iOS-文件操作管理(NSFileManager)
- echo
- 10-税收计算器