問題描述
題目描述寫乙個函式,輸入乙個二叉樹,樹中每個節點存放了乙個整數值,函式返回這顆二叉樹中相差最大的兩個節點間的差值絕對值。請注意程式效率。
演算法思想
1、先序遍歷二叉樹,求得最大值、最小值即求得最終的絕對值差值;
原始碼實現(tnode)
#include#includeusing namespace std;
typedef struct tnode
tnode;
void creatbit(tnode *root)
root->data = null;
return;
}void preord(tnode *root,int *max,int *min)
else
return;
}int main()
bitnode, *bitree;
/* 求差值的函式,傳入乙個二叉樹,其中 *min, *max 初始放 root-data, *value 放差值即要求的值 */
void getvalue(bitree bt, int *min, int *max, int* value)
void createtree(bitree *bt, int a, int len, int index)
/* 兩個小測試 */
int main() ;
int arr2 = ;
bitree root, root2;
createtree(&root, arr, sizeof(arr) / sizeof(int), 0);
createtree(&root2, arr2, sizeof(arr2) / sizeof(int), 0);
int a, max = root->data, min = root->data;
int a2, max2 = root2->data, min2 = root2->data;
getvalue(root, &max, &min, &a);
getvalue(root2, &max2, &min2, &a2);
printf("%d, %d",a,a2);
return 0;
}
二叉樹的最大節點
1 問題描述 在二叉樹中尋找值最大的節點並返回。給出如下一棵二叉樹 1 5 2 0 3 4 5 返回值為 3 的節點。2 實現思路 從根節點開始前序遍歷,與其左右子樹結點值比較,a為遍歷過的最大節點,a與接下來遍歷的節點進行比較。3 class solution treenode compare t...
二叉樹的最大節點
問題描述 在二叉樹中尋找值最大的節點並返回。樣例 給出如下一棵二叉樹 1 5 2 0 3 4 5返回值為3的節點。思路 建立新的節點temp用來儲存遍歷的最大的節點。需注意temp為全域性變數,要在public中,或使用引用。用前序遍歷遍歷所有節點。判斷當前節點值是否大於r的節點值,如果是,將當前節...
lintcode 二叉樹的最大節點
1 問題描述 在二叉樹中尋找值最大的節點並返回 2 思路 用中間結點儲存每一次遞迴時比較的取得最大值的節點。3 解題 definition of treenode class treenode class solution maxnode root left maxnode root right r...