AsukaMinato

AsukaMinato

897. 倒着中序遍历 + 生成器を増やす順序の検索木

中序遍历は必ずしも左中右の順序である必要はありません。
この解法では、queue を使用する必要もなく、stream を使用しています。すべてが自然です。

class Solution:
    def increasingBST(self, root: TreeNode) -> TreeNode:
        def gen(root):
            if not root:
                return
            yield from gen(root.right)
            yield root.val
            yield from gen(root.left)
        return reduce(lambda ans, i: TreeNode(i, None, ans), gen(root), None)
'''
        ans = None
        for i in gen(root):
            ans = TreeNode(i, None, ans)
        return ans
'''      
    翻訳: 
    中序遍歴は必ずしも左中右の順序である必要はありません。
    この解法では、queueを使用する必要もなく、streamを使用しています。すべてが自然です。
class Solution:
    def increasingBST(self, root: TreeNode) -> TreeNode:
        def gen(root):
            if not root:
                return
            yield from gen(root.right)
            yield root.val
            yield from gen(root.left)
        return reduce(lambda ans, i: TreeNode(i, None, ans), gen(root), None)
'''
        ans = None
        for i in gen(root):
            ans = TreeNode(i, None, ans)
        return ans
'''      
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。