輸入兩棵二叉樹A,B,判斷B是不是A的子結構

2021-10-08 08:27:20 字數 706 閱讀 1860

題目描述

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

第一步:

根據題意可知,需要乙個函式判斷樹a和樹b是否有相 同的結構。顯然是個遞迴程式。可考察遞迴程式3部曲。

遞迴函式的功能:判斷2個數是否有相同的結構,如果相同,返回true,否則返回false

遞迴終止條件:

如果樹b為空,返回true,此時,不管樹a是否為空,都為true

否則,如果樹b不為空,但是樹a為空,返回false,此時b還沒空但a空了,顯然false

如果a的根節點和b的根節點不相等,直接返回false

否則,相等,就繼續判斷a的左子樹和b的左子樹,a的右子樹和b的右子樹

第二步:

有了上面那個函式,接下來就應該讓樹a的每個節點作為根節點來和b樹進行比較。

遍歷樹a的每個節點,可用遍歷演算法。這裡採用先序遍歷。

/**

public class treenode

*/public

class

solution

//判斷兩節點是否是相同的結構,

public

boolean

isequal

(treenode root1,treenode root2)

}

輸入兩棵二叉樹A,B,判斷B是不是A的子結構。

問 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 public class treenode public class solution b節點的根節點與當前節點根節點的關係,相同,小於,大於 如果節點的值相同,進行遍歷比較 如果大於或者小於,將父節點的左子...

輸入兩顆二叉樹A,B,判斷B是不是A的子結構

方法一 最簡單就是首先判斷兩棵樹的根節點是否相同,如果相同則判斷兩顆樹的左節點是否對應,右結點是否對應,如果兩個根節點值不同,主樹左節點與子樹根節點判斷,主樹右結點與子樹根節點判斷,然後再判斷對應節點是否相同即可 複雜度 o m n 方法二 首先兩棵樹序列化為字串,然後就是判斷字串之間的包含問題了,...

判斷二叉樹是不是平衡二叉樹

1.問題描述 輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。來自 劍指offer 2.分析 我們可以採用後續遍歷,在遍歷根結點之前就可以得到左右子樹的深度及是不是一顆平衡二叉樹。然後在根據左右子樹的深度差值來判斷這棵樹...