private static class BinaryNode{
int data ;
BinaryNode left ;
BinaryNode right ;
}
/**
* 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,
* 函数返回这颗二叉树中相差最大的两个节点间的差值绝对值。
* @param root
* @return
*/
int findMaxDiff(BinaryNode root ){
int max = root.data ;
int min = root.data ;
Stack<BinaryNode> s = null ;
BinaryNode p = root ;
while (p!=null|| !s.empty()){
while(p!=null){
s.push(p);
p = p.left ;
}
if (!s.empty()){
p=s.peek() ;
if (p.data>max){
max = p.data ;
}
if (p.data<min){
min = p.data ;
}
s.pop() ;
p = p.right ;
}
}
return max- min ;
}