这个题描述不清啊
一开始看描述每太明白题意,对着给出的样例做的
实际上就是:
- 将右子树接到左子树的最右边的叶子节点上
- 将左子树接到root的右儿子上
- 把root的左儿子置空
class Solution {
public void flatten(TreeNode root) {
if (root==null) return;
TreeNode left=root.left,right=root.right;
if (left!=null){
// 将左子树接到root的右边
root.right = left;
// 将右子树接到左子树的最右边的叶子节点上
while (left.right!=null){
left = left.right;
}
left.right = right;
// 注意将左子树置空
root.left = null;
}
flatten(root.right);
}
}