114. 二叉树展开为链表
# 114. 二叉树展开为链表 (opens new window)
# 1.DFS
后续遍历的处理流程。先将左子树展开为链表,然后将右子树也调整为链表。最后需要将左子树插入到右子树当中。
class Solution {
public void flatten(TreeNode root) {
dfs(root);
}
public void dfs(TreeNode root){
if(root==null) return ;
dfs(root.left);
dfs(root.right);
if(root.left!=null){
TreeNode tail=root.left;
while(tail.right!=null) tail=tail.right;
tail.right=root.right;
root.right=root.left;
root.left=null;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57