【题目】
Given two binary trees, write a function tocheck if they are equal or not.
Two binary trees are considered equal ifthey are structurally identical and the nodes have the same value.
给定两棵二叉树,判定相等与否。如果两棵树的结构相同并且结点值相等则二叉树相等。
【思路】
若结点的left, right指向None表示没有叶子结点
root.val不为None即结点存在
【Python实现】
# -*-coding: utf-8 -*-
"""
Createdon Fri Aug 11 16:45:33 2017
@author:Administrator
"""
#Definition for a binary tree node.
classTreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
classSolution(object):
def isSameTree(self, p, q):
"""
:type p: TreeNode
:type q: TreeNode
:rtype: bool
"""
if p is None and q is None:
return True
if p is None or q is None or p.val !=q.val:
return False
return self.isSameTree(p.left, q.left)and self.isSameTree(p.right, q.right)
if__name__ == '__main__':
S = Solution()
l1 = TreeNode(4)
l2 = TreeNode(2)
l3 = TreeNode(6)
l4 = TreeNode(1)
l5 = TreeNode(5)
l6 = TreeNode(3)
l7 = TreeNode(7)
root = l1
l1.left = l2
l1.right = l3
l2.left = l4
l2.right = l5
l3.left = l6
l3.right = l7