Leetcode 114 二叉树展开为链表 发表于 2024-12-09 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 题目要求和先序遍历的顺序相同,直接使用一个列表存储先序遍历的结果,然后将每个节点的左子树置空,右子树指向下一个节点即可。 1234567891011121314151617181920212223242526# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def flatten(self, root: Optional[TreeNode]) -> None: """ Do not return anything, modify root in-place instead. """ if not root: return tmp = [] def preorder_traversal(root): if not root: return tmp.append(root) preorder_traversal(root.left) preorder_traversal(root.right) preorder_traversal(root) for i in range(1, len(tmp)): node = tmp[i] root.left = None root.right = node root = root.right