演算法 判斷輸入是否是樹的子數

2021-08-07 14:02:47 字數 624 閱讀 6078

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

分析:

首先找到a中結點的值與b相等的結點,然後從這兩個相同的結點出發,判斷是否存在重合,若是返回true。否則,在樹a的左右子樹中尋找與b結點值相同的結點,以這些結點出發遞迴判斷是否是a的子樹。

public class treenode 

}public class solution

if(!flag)

if(!flag)

}return flag;

}public boolean issubtree(treenode root1,treenode root2)else if(root2==null)//b樹已經為空,判斷到最後乙個結點都相同,不論a中是否有剩餘,都是a的子樹

return true;

else if(root1==null)//a樹判斷到最後乙個元素,但b還存在剩餘結點,說明b不在a中,不是a的子樹

return false;

else if(root1.val==root2.val)else

return false;

}}

判斷是否是回文數

示例如下 給你乙個整數 x 如果 x 是乙個回文整數,返回 true 否則,返回 false 回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。例如,121 是回文,而 123 不是。public class hwnumber public static boolean ispalind...

C 判斷輸入的是否是漢字

第一種方法 正規表示式 string text 是不是漢字 for int i 0 i text.length i console.readkey 第二種方法 漢字的 unicode 編碼範圍 string text 是不是漢字 char c text.tochararray for int i 0...

劍指offer 判斷B樹是否是A樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 一道蠻有意思的題,一開始理解錯題意了,只考慮了b樹完全覆蓋了a中某棵子樹,並且以為一定存在根節點相同就完全匹配b樹的子樹。然後想著只要從a樹根節點往下遍歷直到找到乙個節點與b的根節點匹配即可。還是想的太...