ALBB 二叉樹中相差最大節點的絕對差值

2021-07-04 16:49:53 字數 1151 閱讀 1673

問題描述

題目描述寫乙個函式,輸入乙個二叉樹,樹中每個節點存放了乙個整數值,函式返回這顆二叉樹中相差最大的兩個節點間的差值絕對值。請注意程式效率。

演算法思想

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...