多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 《劍指offer》:[59]對稱的二叉樹

《劍指offer》:[59]對稱的二叉樹

來源:程序員人生   發布時間:2016-08-29 08:30:01 閱讀次數:2422次
題目;請實現1個函數,用來判斷1棵2叉樹是否是對稱的。如果1顆2叉樹和它的鏡像1樣,那末它是對稱的。

例如,下面2棵樹圖(1)就是對稱的2叉樹,而圖(2)(3)就不是的。


分析:我們知道樹的遍歷有3種方式:前,中,后。顧名思義,對稱就是左側的和右側的相等,中間的自己等于自己。所以我們自己可以定義1種對稱遍歷算法,例如前序遍歷中的前,左,右。對稱算法就是:前,右,左。恰好對稱比較。固然了其他的中和后序遍歷也行,我們也能夠定義與其對應的對稱算法。但是其中為了不出現樹(3)中的遍歷出來的數據1樣,造成誤判,我們需要對葉子結點加上標識,如空節點需要設置為NULL。而不能只是比較遍歷后的數據。
具體是實現代碼以下:
#include <iostream> using namespace std; struct BinaryTree { int data; BinaryTree *pLeft; BinaryTree *pRight; }; BinaryTree *pRoot1=NULL; BinaryTree *pRoot2=NULL; BinaryTree *pRoot3=NULL; void CreateTree(BinaryTree * &root) { int data; cin>>data; if(0==data) root=NULL; else { root=new BinaryTree; root->data=data; //前序遍歷構建2叉樹; CreateTree(root->pLeft); CreateTree(root->pRight); } } bool IsSymmetricalHelp(BinaryTree *root1,BinaryTree *root2) { if(root1==NULL && root2==NULL) return true; if(root1==NULL || root2==NULL)//把null也算上,很重要,避免數據1樣的特殊情況; return false; if(root1->data!=root2->data) return false; return IsSymmetricalHelp(root1->pLeft,root2->pRight) && IsSymmetricalHelp(root1->pRight,root2->pLeft); } bool IsSymmetrical(BinaryTree *root) { return IsSymmetricalHelp(root,root); } void PreOrder(BinaryTree *root) { if(root) { cout<<root->data<<" "; PreOrder(root->pLeft); PreOrder(root->pRight); } } void UntiPreOrder(BinaryTree *root) { if(root) { cout<<root->data<<" "; PreOrder(root->pRight); PreOrder(root->pLeft); } } int main() { bool result=false; CreateTree(pRoot1); cout<<"樹1的--前序遍歷:"; PreOrder(pRoot1); cout<<endl; cout<<"樹1的反前序遍歷:"; UntiPreOrder(pRoot1); result=IsSymmetrical(pRoot1); if(result) cout<<endl<<"該樹是對稱樹!"<<endl; else cout<<"該樹不是對稱樹!"<<endl; cout<<endl; CreateTree(pRoot2);//樹3雖然遍歷1樣,但是否是對成樹! cout<<"樹2的--前序遍歷:"; PreOrder(pRoot2); cout<<endl; cout<<"樹2的反前序遍歷:"; UntiPreOrder(pRoot2); cout<<endl; result=IsSymmetrical(pRoot2); if(result) cout<<"該樹是對稱樹!"<<endl; else cout<<"該樹不是對稱樹!"<<endl; cout<<endl; system("pause"); return 0; }

運行結果以下;



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成年人小视频在线观看 | 美国毛片免费观看 | 啪啪91视频 | 国产国产成人精品久久 | 亚洲精品色一区二区三区 | 1v1双性受整夜不拔bl | 伦伦影院精品一区 | 日韩精品欧美精品中文精品 | 国产精品久久久亚洲456 | 精品国产亚洲人成在线 | 中国明星freesexhd图片 | 五月亚洲 | 日本不卡视频在线 | 亚洲精品一区二区中文 | 日本卡1卡2卡4卡免费 | 欧美18一19sex性瑜伽 | 性欧美videosex18嫩 | 校园亚洲春色另类小说合集 | 久久中文字幕综合不卡一二区 | 18欧美同性videos可播放 | 亚洲天堂高清 | 日本午夜视频在线观看 | 国产v片成人影院在线观看 国产v片在线观看 | 伊人网在线免费观看 | 有毛片毛毛片毛片毛片 | 日本jizz在线播放 | 亚洲黄色片免费看 | 国产精品久久网 | 国产精品国产午夜免费福利看 | 国产亚洲精品久久久久91网站 | 无人精品乱码一区二区三区 | 另类专区亚洲 | 国产精品2020观看久久 | 欧美精品色精品一区二区三区 | 久久就是精品 | 92精品国产自产在线观看48页 | 亚洲精品国自产拍影院 | 欧美日韩亚洲第一页 | 在线观看欧美亚洲 | 羞羞网站| 欧美18videosex性欧 |