题目描述
题目链接:https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/
思路
- 先序遍历
- 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 List list = new ArrayList();
代码实现
class Solution {
List<TreeNode> list = new ArrayList<TreeNode>();
public void flatten(TreeNode root) {
// 先序遍历
preOrder(root);
int size = list.size();
for(int i =1;i<size;i++){
TreeNode pre = list.get(i-1), curr = list.get(i);
pre.left = null;
pre.right = curr;
}
}
public void preOrder(TreeNode root){
if(root==null){
return ;
}
list.add(root);
preOrder(root.left);
preOrder(root.right);
}
}