一、题目
二、代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution
{
List<TreeNode> re = new LinkedList<>();
public void flatten(TreeNode root)
{
if(root == null) return;
before(root);
int i;
int length;
length = re.size();
for(i=0;i<length-1;i++)
{
TreeNode temp = re.get(i);
TreeNode temp_2 = re.get(i+1);
temp.left = null;
temp.right = temp_2;
}
TreeNode temp_final = re.get(length-1);
temp_final.left = null;
temp_final.right = null;
}
public void before(TreeNode cur)
{
re.add(cur);
if(cur.left != null ) before(cur.left);
if(cur.right != null ) before(cur.right);
}
}