LeetCode刷题笔记第100题:相同的树

LeetCode刷题笔记第100题:相同的树

想法:
想要判断两棵树是否相同,则需要判断对应位置节点是否相同,因此需要通过递归判断树中所有的节点。在判断对应节点时,需要判断两棵树中对应位置节点是否存在并相同,一旦有不同则返回False,若相同则递归判断余下节点,直至最后的位置节点是否相同,当两棵树中节点均遍历完成,并且没有不相同的多余节点时判断结束,此时两棵树相同。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        # 相同的树
        # 当两棵树都为空时,此时两棵树相同,返回True
        if not p and not q:
            return True
        # 当两棵树中有一棵不为空时说明两棵树不同,返回False
        elif not p or not q:
            return False
        # 两棵树中当前节点数值不相同时则返回False
        elif p.val != q.val:
            return False
        else:
            # 循环递归判断两棵树中剩下的节点
            return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值