leetcode 刷题之路 69 Flatten Binary Tree to Linked List
2014-08-10 14:36
387 查看
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
The flattened tree should look like:
click to show hints.
Hints:
If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.
二叉树转换,转换后的形式中节点顺序恰好是二叉树前序遍历后的顺序。
解法,对二叉树的左子树作转换操作,对二叉树的右子树作转换操作,然后将左子树转换结果拼接到根节点和右子树转换结果中间,执行过程如下图所示。
AC code:
For example,
Given
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
click to show hints.
Hints:
If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.
二叉树转换,转换后的形式中节点顺序恰好是二叉树前序遍历后的顺序。
解法,对二叉树的左子树作转换操作,对二叉树的右子树作转换操作,然后将左子树转换结果拼接到根节点和右子树转换结果中间,执行过程如下图所示。
1 / \ 2 5 / \ \ 3 4 6
1 / \ 2 5 \ \ 3 6 \ 4
1 \ 2 \ 3 \ 4 \ 5 \ 6
AC code:
/** * Definition for binary tree * 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; flatten(root->left); flatten(root->right); if(root->left!=NULL) { TreeNode *p=root->left; while(p->right!=NULL) p=p->right; p->right=root->right; root->right=root->left; root->left=NULL; } } };
相关文章推荐
- 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
- LeetCode: Flatten Binary Tree to Linked List
- [leetcode]Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List