深度:
int length(BiTree t) { int depth2 = 0; int depth3 = 0; if(t == null ) return 0; //右子树的深度 depth2 = length(t.right); //左子树的深度 depth3 = length(t.left); if(depth2>depth3) return depth2+1; else return depth3+1; }
宽度:
int getMaxWidth(TreeNode root) { if (root == null) return 0; Queue<TreeNode> queue = new ArrayDeque<TreeNode>(); int maxWitdth = 1; // 最大宽度 queue.add(root); // 入队 while (true) { int len = queue.size(); // 当前层的节点个数 if (len == 0) break; while (len > 0) { // 如果当前层,还有节点 TreeNode t = queue.pop(); len--; if (t.left != null) queue.push(t.left); // 下一层节点入队 if (t.right != null) queue.add(t.right);// 下一层节点入队 } maxWitdth = Math.max(maxWitdth, queue.size()); } return maxWitdth; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。