最大高度
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; }