程式設計題 樹的子結構

2021-10-04 15:50:52 字數 921 閱讀 2704

思路:

正確理解題意:子結構到底是啥意思?很容易弄混淆的是子樹和子結構,下圖黃色黃是子樹,黑色框是子結構但不是子樹

一棵大樹 a,一棵小樹 b,若 b 是 a 的子樹,則:

b 和 a 的乙個子節點c的結點值完全相同,它們倆的左子樹、右子樹所有結點的值也完全相同,子結構要求則沒那麼嚴格

1先寫乙個方法,傳入兩棵根節點值相同的樹,判斷tree2是否和tree1的子結構。

2再寫乙個方法來遍歷大樹tree1,找到乙個和小樹根節點值相等的節點,以該節點和小樹根節點的值為引數呼叫上面的方法即可

/**

public class treenode }*/

public

class

solution

if( tree1 == null )

if( tree1.val != tree2.val )

return

doestree1hastree2

(tree1.left, tree2.left)

&&doestree1hastree2

(tree1.right, tree2.right);}

public

boolean

hassubtree

(treenode root1, treenode root2)

return

doestree1hastree2

(root1, root2)

||hassubtree

(root1.left, root2)

||hassubtree

(root1.right, root2);}

}

演算法刷題 樹的子結構

問題 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 1 判斷b是不是空樹,如果是空樹,返回false 2 判斷a是不是空樹,如果是空樹,返回false 3 如果找到了對應b的根節點的點,即在這時候ab相同了,以這個根節點為為起點判斷是否包含b 4 判斷...

樹的子結構(第17題)

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 ac 100 思路 先序遍歷尋找a中和b根節點相等的節點,記做起點,然後從這個起點開始和b樹進行對比。public class a17樹的子結構 b root2 dlr root1 return flag 先序遍...

第17題「樹的子結構」

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 時間限制 1秒 空間限制 32768k 熱度指數 342783 第一步 先找到a樹中與b樹根節點相等的節點 第二步 當找到這個節點後,比較他們兩的子樹 第四步 再繼續比較下去。找遞迴出口 public class...