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

2021-07-13 23:54:12 字數 844 閱讀 4331

方法一:最簡單就是首先判斷兩棵樹的根節點是否相同,如果相同則判斷兩顆樹的左節點是否對應,右結點是否對應,

如果兩個根節點值不同,主樹左節點與子樹根節點判斷,主樹右結點與子樹根節點判斷,然後再判斷對應節點是否相同即可

複雜度:o(m*n)

方法二:首先兩棵樹序列化為字串,然後就是判斷字串之間的包含問題了,用kmp演算法判斷結果

複雜度:o(m+n)

上**:

public class solution 

if(!flag)

if(!flag)

}return flag;

}public boolean issubtree(treenode root1,treenode root2)

}

方法二:

public class identicaltree else

}public string treetostr(treenode tree)

stringbuilder sb=new stringbuilder();

return sb.tostring();

}public int getindexof(string s1,string s2)

int next=getnext(s2);

char sc1=s1.tochararray();

char sc2=s2.tochararray();

int m1=0;

int m2=0;

while(m10)

else

}return next;}}

}

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

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

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

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 第一步 根據題意可知,需要乙個函式判斷樹a和樹b是否有相 同的結構。顯然是個遞迴程式。可考察遞迴程式3部曲。遞迴函式的功能 判斷2個數是否有相同的結構,如果相同,返回true,否則返回false 遞迴終...

判斷一顆二叉樹是不是完全二叉樹

類似於測序遍歷,用佇列實現 先進後出 1 如果根不為空,那麼根入隊 2 判斷佇列是否為空,不為空,則將隊頭元素出隊並儲存在臨時變數cur裡,3 判斷cur是否為空,若不為空,則將cur的左右子樹都放到佇列裡,如果子樹為空,就往佇列裡插入null。若為空,則直接停止出隊,然後看佇列裡是否還有不是nul...