Consider all the leaves of a binary tree. From left to right order, the values of those leaves form a leaf value sequence.
For example, in the given tree above, the leaf value sequence is (6, 7, 4, 9, 8)
.
Two binary trees are considered leaf-similar if their leaf value sequence is the same.
Return true
if and only if the two given trees with head nodes root1
and root2
are leaf-similar.
Note:
- Both of the given trees will have between
1
and100
nodes.
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def leafSimilar(self, root1, root2): """ :type root1: TreeNode :type root2: TreeNode :rtype: bool """ leaf=[] def findleaf(r): if not r.left and not r.right: leaf.append(r.val) elif not r.left and r.right!=None: findleaf(r.right) elif not r.right and r.left!=None: findleaf(r.left) else: findleaf(r.left) findleaf(r.right) findleaf(root1) leaf1=leaf leaf=[] findleaf(root2) if leaf==leaf1: return True return False