美文网首页
python实现leetcode之114. 二叉树展开为链表

python实现leetcode之114. 二叉树展开为链表

作者: 深圳都这么冷 | 来源:发表于2021-09-30 00:00 被阅读0次

解题思路

第一步 按照先序遍历将节点收集到队列里
第二步 便利队列,然后将每个节点left设置为None,right指向下一个节点
最后一个节点除外

114. 二叉树展开为链表

代码

class Solution(object):
    def flatten(self, root):
        """
        :type root: TreeNode
        :rtype: None Do not return anything, modify root in-place instead.
        """
        # 按照先序遍历将节点收集到队列里
        queue = []
        dft(root, queue)
        for idx, node in enumerate(queue):
            node.left = None
            if idx < len(queue)-1:
                next_node = queue[idx + 1]
                node.right = next_node
        
def dft(tree, queue):
    if not tree: return
    queue.append(tree)
    if tree.left: dft(tree.left, queue)
    if tree.right: dft(tree.right, queue)

效果图

相关文章

网友评论

      本文标题:python实现leetcode之114. 二叉树展开为链表

      本文链接:https://www.haomeiwen.com/subject/eumfnltx.html