1 题目
链接:二叉树展开为链表
2 Python
2.1 方法一:递归
思想:左子树接到根节点的右子树位置,右子树接到左子树的右子树位置
从二叉树的左下角往右上角逐个操作
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def flatten(self, root: TreeNode) -> None:
"""
Do not return anything, modify root in-place instead.
"""
# 出口函数
if not root:
return None;
# 递归过程
self.flatten(root.right);
self.flatten(root.left);
if root.left:
right = root.right;
root.right = root.left;
root.left = None;
# 找到左子树(已经接到了根节点的右子树位置)最下层的右子树
while root.right:
root = root.right;
root.right = right;
来源:CSDN
作者:闲人泽阳
链接:https://blog.csdn.net/weixin_43969686/article/details/104208439