方法一:最簡單就是首先判斷兩棵樹的根節點是否相同,如果相同則判斷兩顆樹的左節點是否對應,右結點是否對應,
如果兩個根節點值不同,主樹左節點與子樹根節點判斷,主樹右結點與子樹根節點判斷,然後再判斷對應節點是否相同即可
複雜度: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...