Ежедневный вопрос по алгоритму — leetcode 100 — то же дерево — python

алгоритм
Ежедневный вопрос по алгоритму — leetcode 100 — то же дерево — python

【Название Описание】

【Идея кода】

Чтобы сравнить, являются ли два дерева одинаковыми, мы можем сохранить все узлы в каждом дереве в списке, а затем сравнить списки. На самом деле можно использовать любой способ обхода бинарного дерева.

В этом вопросе мы используем обход предварительного порядка для обхода бинарного дерева, но разница в том, что когда встречается пустой узел, его нельзя пропустить напрямую, и требуется определенная метка для сравнения порядка, в котором узлы двух деревьев появляются и является ли значение полным.

Отличные методы конкатенации списков в python, включая конкатенацию +, extend и slice.

【Исходный код】

class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        return self.dfs(p)==self.dfs(q)
        
    def dfs(self,root):
        if root:
            return [root.val]+self.dfs(root.left)+self.dfs(root.right)
        else:
            return [None]