輸入兩棵二叉樹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 判斷...