java – 如何在二叉树中查找最大值
发布时间:2020-12-15 05:03:16 所属栏目:Java 来源:网络整理
导读:我必须以这样的方式完成方法maxElem(节点节点),方法maxElem()返回二叉树中包含的最大值. 我怎样才能做到这一点?我不知道如何去做.. public class BinaryTree { protected class Node { protected Integer element; protected Node left; protected Node rig
我必须以这样的方式完成方法maxElem(节点节点),方法maxElem()返回二叉树中包含的最大值.
我怎样才能做到这一点?我不知道如何去做.. public class BinaryTree { protected class Node { protected Integer element; protected Node left; protected Node right; Node(int element) { this.element = element; left = right = null; } Node(int element,Node left,Node right) { this.element = element; this.left = left; this.right = right; } } //end Node class public class NodeReference { private Node node; private NodeReference(Node node) { this.node = node; } public int getElement() { return node.element; } public void setElement(int e) { node.element = e; } } protected Node root; public BinaryTree() { root = null; } private class BoolNode { boolean found; Node node; BoolNode(boolean found,Node node) { this.found = found; this.node = node; } } public int maxElem() { if(root == null) throw new IllegalStateException("Empty tree."); return maxElem(root); } private static int max3(int x,int y,int z) { return max(x,max(y,z)); } private int maxElem(Node node) { //... } } 非常感谢! 解决方法
尝试:
private int maxElem(Node node) { int max = node.element; if(node.left != null) { max = Math.max(max,maxElem(node.left)); } if(node.right != null) { max = Math.max(max,maxElem(node.right)); } return max; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |