http://www.geeksforgeeks.org/diameter-of-a-binary-tree/
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <queue> 5 #include <stack> 6 using namespace std; 7 8 struct node { 9 int data; 10 struct node *left, * right; 11 node() : data( 0 ), left(NULL), right(NULL) { } 12 node( int d) : data(d), left(NULL), right(NULL) { } 13 }; 14 15 void print(node * node) { 16 if (!node) return ; 17 print(node-> left); 18 cout << node->data << " " ; 19 print(node-> right); 20 } 21 22 int diameter(node *root, int & ans) { 23 if (!root) return 0 ; 24 int l = diameter(root-> left, ans); 25 int r = diameter(root-> right, ans); 26 ans = max(ans, l+r+ 1 ); 27 return max(l, r) + 1 ; 28 } 29 30 31 int main() { 32 struct node* root = new node( 1 ); 33 root->left = new node( 2 ); 34 root->right = new node( 3 ); 35 root->left->left = new node( 4 ); 36 root->left->right = new node( 5 ); 37 int ans = 0 ; 38 diameter(root, ans); 39 cout << ans << endl; 40 return 0 ; 41 }
?
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
