Node(int item) { data = item; left = right = null; } }
public class A031 { Node root; int diameter = 0; public int diameterOfBinaryTree(Node root) { getDepth(root); return diameter; } // 此函数是返回树的最大深度 private int getDepth(Node root) { if (root == null) return 0; int l = getDepth(root.left); int r = getDepth(root.right); diameter = Math.max(diameter, l + r); return Math.max(l, r) + 1; } public static void main(String args[]) { A031 tree = new A031();
tree.root = new Node(1); tree.root.left = new Node(2); tree.root.right = new Node(3); tree.root.left.left = new Node(5); tree.root.left.right = new Node(6); tree.root.left.left.left = new Node(7); tree.root.left.left.right = new Node(8); System.out.println(tree.diameterOfBinaryTree(tree.root)+1); } }
近期评论