演算法題目 樹的子結構

2021-08-02 13:04:04 字數 529 閱讀 8510

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

分析:分為兩步:1、檢查a中是否有與b的根節點相同的結點r

2、以r為根節點的子樹是否包含和數b一樣的結構。

解答:

/**

public class treenode }*/

public class solution

if(!result)

if(!result)

}return result;

}public boolean doestree1hastree2(treenode root1,treenode root2)

if(root2==null)

if(root1.val!=root2.val)

return doestree1hastree2(root1.left,root2.left)&&doestree1hastree2(root1.right,root2.right);

}}

演算法複習 樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 分成兩步,第一步先從樹1中找到樹2的根節點,找到後就開始判斷子樹是否相同,否則從樹1繼續向下找,顯然可以使用遞迴實現。第二步是找到根節點後判斷樹是否相同,也可以使用遞迴,遞迴的出口是到樹2的葉子節點,即上面的節點...

演算法學習 樹的子結構

問題描述 判斷樹a是否是樹b的子結構。解法與分析 使用遞迴的方式很容易解決。先進行根結點比較,相等的話,遞迴左右子樹。public static boolean isincludetree treenode parent,treenode child if parent.value child.va...

演算法刷題 樹的子結構

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