首页 > 代码库 > 二叉树的最小高度,最大高度(深度)和宽度
二叉树的最小高度,最大高度(深度)和宽度
最大高度
function getMaxHeight(root){ if(root == null){ return 0; } else{ var left = getMaxHeight(root.left); var right = getMaxHeight(root.right); return 1 + Math.max(left,right); } }
最小高度
function getMinHeight(root){ if(root = null){ return 0; } else{ var left = getMinHeight(root.left); var right = getMinHeight(root.right); return 1 + Math.min(left,right); } }
二叉树宽度
递归方法
function getMaxWidth(root){ if(root == null){ return 0; } else if(root.left == null && root.right == null){ return 1; } else{ return getMaxWidth(root.left) + getMaxWidth(root.right); } }
非递归方法
function getMaxWidth(root){ if(root == null){return 0} var queue = [], maxWidth = 1; queue.push(root); while(true){ var levelSize = queue.length; if(levelSize == 0){ break; } while(levelSize > 0){ var node = queue.shift(); levelSize--; if(node.left){ queue.push(node.left); } if(node.right){ queue.push(node.right); } } maxWidth = Math.max(maxWidth,levelSize); } return maxWidth; }
二叉树的最小高度,最大高度(深度)和宽度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。