深度:
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。