您的位置:首页 > 其它

二叉树中相差最大的两个节点间的差值绝对值(实际是用的遍历)

2015-08-21 16:22 495 查看
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 ;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: