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 ; }