Day03-AI小白学习的第三天

50 阅读1分钟

学习算法的一天

今天是入门级算法: 判断两个二叉树是否相等:

描述

给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。 判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。

解法

分情况讨论,递归遍历整个二叉树,如果两个树的节点不相同就退出递归,python实现。

import re
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

#
# 
# @param p TreeNode类 
# @param q TreeNode类 
# @return bool布尔型
#
class Solution:
    def isSameTree(self , p , q ):
        # write code here
        #情况一:两个节点都为空,视为相同
        if not p and not q:
            return True
        #情况二:两个节点有一个为空,视为不相同
        if not p or not q:
            return False
        #情况三:两个节点值不相同
        if p.val != q.val:
            return False
        return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)