/** 114. 二叉树展开为链表
* @author 作者 Your-Name:
* @version 创建时间:2020年3月1日 下午3:43:48
* 给定一个二叉树,原地将它展开为链表。
例如,给定二叉树
1
/ \
2 5
/ \ \
3 4 6
将其展开为:
1
\
2
\
3
\
4
\
5
\
6
*/
public class 二叉树展开为链表 {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public void flatten(TreeNode root) {
if(root==null)
return ;
flatten(root.left);
flatten(root.right);
if(root.left!=null)
{
TreeNode a = root.right;
root.right = root.left;
root.left = null;
TreeNode b = root.right;
while(b.right!=null)
{
b = b.right;
}
b.right = a;
}
}
}