zoukankan      html  css  js  c++  java
  • 剑指offer 面试26题

    面试26题:

    题目:树的子结构

    题:输入两棵二叉树A和B,判断B是不是A的子结构。

    解题思路:递归,注意空指针的情况。

    解题代码:

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        def HasSubtree(self, pRoot1, pRoot2):
            # write code here
            res=False
            if pRoot1 and pRoot2:
                if pRoot1.val==pRoot2.val:
                    res=self.SubtreeCore(pRoot1,pRoot2)
                if not res:
                    res=self.HasSubtree(pRoot1.left,pRoot2)
                if not res:
                    res=self.HasSubtree(pRoot1.right,pRoot2)
            return res
        
        def SubtreeCore(self,pRoot1,pRoot2):
            if pRoot2==None:
                return True
            if pRoot1==None:
                return False
            if pRoot1.val!=pRoot2.val:
                return False
            return self.SubtreeCore(pRoot1.left,pRoot2.left) and self.SubtreeCore(pRoot1.right,pRoot2.right)

    另外,如果树节点的val值是double的时候,需要自定义一个equal函数,当num1和num2相差小于1e-07时即可认为是相等的,详见剑指offer P151

  • 相关阅读:
    查找整数
    寒假作业3
    寒假作业2
    寒假作业1
    秋季学期总结
    对自己影响最深的三位老师
    自我介绍
    jquery学习笔记
    素材网站
    转:vim模式下报错E37: No write since last change (add ! to override)
  • 原文地址:https://www.cnblogs.com/yanmk/p/9197950.html
Copyright © 2011-2022 走看看