1. 程式人生 > >LeetCode--Same Tree(判斷兩個二叉樹是否相同)Python

LeetCode--Same Tree(判斷兩個二叉樹是否相同)Python

題目:

給定兩個二叉樹,判斷這兩個二叉樹是否完全相同。

解題思路:

直接通過中序遍歷、前序遍歷或者後續遍歷遍歷這兩棵二叉樹,得到兩個list結果,判斷這兩個list是否相同,相同返回True,否則返回False。需要注意考慮葉子節點的情況。

程式碼(Python):

# 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 isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype: bool
        """
        def read_tree(tree,r_list):
            if tree==None:
                r_list.append('null')
            else:
                r_list.append(tree.val)
                read_tree(tree.left,r_list)
                read_tree(tree.right,r_list)
            return r_list
        
        r1 = read_tree(p,[])
        
        r2 = read_tree(q,[])
        
        if r1==r2:
            return True
        else:
            return False