leetcode刷题_PYTHON(11):链表(11)二叉树展开为链表
给你二叉树的根结点 root ,请你将它展开为一个单链表:
展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
展开后的单链表应该与二叉树 先序遍历 顺序相同。

# 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 = right class Solution: def flatten(self, root: TreeNode) -> None: """ Do not return anything, modify root in-place instead. """ def dfs(node): if not node: return dfs(node.left) dfs(node.right) if node.left: # 取该节点的左子树 temp = node.left # 取该左子树的最右子树 while temp.right: temp = temp.right # 最右子树的右子树为node的右子树 temp.right = node.right # 将node的左子树移到右子树上 node.right = node.left node.left = None dfs(root) return root 作者:zhsama 链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/solution/dfsda-bai-99-by-zhsama-il4r/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15259558.html

浙公网安备 33010602011771号