题目描述:
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
solution:
int findMinMax(BTNode *T){ if(!T) return 0; int max = INT_MIN; int min = INT_MAX; stacks; s.push(T); while (!s.empty()) { BTNode *tmp = s.top(); if(tmp->data > max) max = tmp->data; if(tmp->data < min) min = tmp->data; s.pop(); if(tmp->rchild) s.push(tmp->rchild); if(tmp->lchild) s.push(tmp->lchild); } return max - min;}