LeetCode in Python 872. Leaf-Similar Trees
题目描述:
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.
Solution:
和366. Find Leaves很像,dfs回溯分别得到叶子节点的list,代码:
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def leafSimilar(self, root1, root2): """ :type root1: TreeNode :type root2: TreeNode :rtype: bool """ def dfs(root, leaves): if not root: return if not root.left and not root.right: leaves.append(root.val) dfs(root.left, leaves) dfs(root.right, leaves) leftLeaves = [] rightLeaves = [] dfs(root1, leftLeaves) dfs(root2, rightLeaves) return leftLeaves == rightLeaves