边看春晚边刷
一、题目
题目:114. 二叉树展开为链表
难度:中等
地址:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/
使用语言:Java
二、代码
class Solution {
public void flatten(TreeNode root) {
// 实际上是前序遍历
toLinkedList(root);
}
public TreeNode toLinkedList(TreeNode root){
if(root == null){
return null;
}
toLinkedList(root.left);
toLinkedList(root.right);
// 后序遍历 1 左右子树已经被拉成了一条链表
TreeNode left = root.left;
TreeNode right = root.right;
// 2.将左子树作为右边子树
root.left = null;
root.right = left;
// 3.将原来的左子树接到当前左边树的末端
TreeNode p = root;
while(p.right != null){
p = p.right;
}
p.right = right;
return p;
}
}