首页 > 代码库 > 阿里 2014-08-29 校招机试题 求一个存放整数的二叉树相差最大的两节点差值绝对值

阿里 2014-08-29 校招机试题 求一个存放整数的二叉树相差最大的两节点差值绝对值

题目:写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这颗二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。

如果是数值之差,感觉怎么着也得遍历一遍,直接修改下二叉树的基本遍历代码就可以。

#include<stdio.h>
#include <stdlib.h>

typedef struct Node {
	int data;
	struct Node * left;
	struct Node * right;
} BitNode, *BiTree;

/* 求差值的函数,传入一个二叉树,其中 *min, *max 初始放 root-data, *value 放差值即要求的值 */
void getValue(BiTree bt, int *min, int *max, int* value) {
	if(bt == NULL) return;
	if (*min > bt->data) *min = bt->data;
	if (*max < bt->data) *max = bt->data;
	*value = http://www.mamicode.com/*max - *min;>

阿里 2014-08-29 校招机试题 求一个存放整数的二叉树相差最大的两节点差值绝对值