【Название Описание】
【Идея кода】Чтобы сравнить, являются ли два дерева одинаковыми, мы можем сохранить все узлы в каждом дереве в списке, а затем сравнить списки. На самом деле можно использовать любой способ обхода бинарного дерева.
В этом вопросе мы используем обход предварительного порядка для обхода бинарного дерева, но разница в том, что когда встречается пустой узел, его нельзя пропустить напрямую, и требуется определенная метка для сравнения порядка, в котором узлы двух деревьев появляются и является ли значение полным.
Отличные методы конкатенации списков в 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]