加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读