判斷樹的子結構

2022-05-31 18:57:09 字數 921 閱讀 1562

問題

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

分析

1、子樹的兩種形式:

(1)子樹位於左孩子或右孩子枝,及b是a的左孩子或右孩子。

(2)兩棵樹擁有相同的根節點,子樹更短。

2、判斷過程:

(1)父親樹依次尋找與子樹根節點相同的節點,將找到的節點作為子樹b2的根節點,比較b2與b

(2)b2與b的比較過程:節點依次比較。

比較結束條件:b2樹先為空,表示b2當前的子結構是b的子樹,反之b先為空,則表示不是;都不為空比較節點元素,元素相等則繼續遞迴比較(先左枝,再右枝),不相等則表示不是。

code

public

boolean

hassubtree(treenode root1, treenode root2)

else

}//尋找孩子節點是否滿足條件

if(hassubtree(root1.left,root2) ||hassubtree(root1.right,root2))

return

false

; }

}//從root1的某個節點開始,依次比較節點

public

boolean

check(treenode root1,treenode root2)

else

if(root1==null && root2!=null)

else

if(root1.val !=root2.val)

else

return

false

; }

}

判斷樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 時間限制 1秒 空間限制 32768k 分析 a 和 b兩棵樹 1 根節點的value是否匹配 2 若匹配,進行a與b根節點的左子樹與右子樹的匹配 3 不匹配,判斷a的左子樹和右子樹的根結點是否和b的根...

判斷樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 判斷b是不是a的子結構,就需要依次拿a的節點和b的根節點相比較,如果相同,則比較其左右節點是否相同,知道b二叉樹遍歷完。運用遞迴 usr bin env python coding utf 8 class ...

判斷樹的子結構

輸入兩顆二叉樹,判斷b是不是a的子結構。約定空樹不是任意乙個數的子結構 b是a的子結構,即a中有出現和b中相同的結構及節點值。例如 求解思路 1.先遍歷樹a,在a中找到b的根節點。若b是a的字數,則b的根節點必然是a的節點之一 2.在a中找到b的根節點後,遞迴比較根節點及剩下的左右子樹是否都相等 補...