牛客網 樹的子結構 解題報告 python

2021-10-02 15:42:20 字數 808 閱讀 9964

題目描述:

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

解題方案:

採用遞迴方法,原函式不太好遞迴,重寫遞迴函式。

# -*- 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

if not (proot1 and proot2):

return false

return self.is_subtree(proot1, proot2) or self.hassubtree(proot1.left, proot2) or self.hassubtree(proot1.right, proot2)

def is_subtree(self, a, b):

if not b:

return true

if not a or a.val != b.val:

return false

return self.is_subtree(a.left, b.left) and self.is_subtree(a.right, b.right)

牛客網12 樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 coding utf 8 class treenode def init self,x self.val x self.left none self.right none 下面兩個函式,hassubtr...

牛客網 清華大學 剩下的樹 解題報告

有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹。可能有m ...

牛客網刷題 樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 解析 可以想見整個過程 1 a,b首先看根節點對不對,如果對了,看根節點的左右結點對不對。2 若第乙個根節點沒有配對成功,則換成a的左子結點來配對。3 若左子結點沒有成功,則換成a的右子結點來配對。st...