这个题描述不清啊
一开始看描述每太明白题意,对着给出的样例做的
实际上就是:
- 将右子树接到左子树的最右边的叶子节点上
- 将左子树接到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); }}