思路:将树的子树插入原有的右子树之前,组合成新的右子树,左子树和右子树依次这样递归求解。
code:
class Solution {
public:
void flatten(TreeNode *root) {
if(root == NULL)return;
flatten(root->left);
if(root->left != NULL){
TreeNode *mostRight = root->left;
while(mostRight->right != NULL)
mostRight = mostRight->right;
mostRight->right = root->right;
root->right = root->left;
root->left = NULL;
}
flatten(root->right);
}
};
本文介绍了一种将二叉树扁平化的算法实现,通过递归方式将树的左子树作为右子树的最右侧节点的子节点,最终使整个二叉树转化为只有右子树的链表形式。
579

被折叠的 条评论
为什么被折叠?



