您的位置:首页 > 其它

[阿里2015校招笔试]求二叉树中相差最大的两个节点间的差值绝对值

2014-08-29 22:16 267 查看
直接上代码

/**
* 按层遍历二叉树,返回这棵二叉树中相差最大的两个节点间的差值绝对值(默认至少有两个节点)
* @param root
* @return
*/
public static int getMaxValue(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();// 队列
TreeNode temp;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;

queue.add(root);// 添加根节点到队列
while (!queue.isEmpty()) {
temp = queue.poll();

if(temp.val > max){
max = temp.val;
}
if(temp.val < min){
min = temp.val;
}

if (temp.left != null) {
// 如果左孩子不为空,将其添加到队尾
queue.offer(temp.left);
}

if (temp.right != null) {
// 如果右孩子不为空,将其添加到队尾
queue.offer(temp.right);
}
}
return max - min;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐