其他分享
首页 > 其他分享> > 满二叉树的判定

满二叉树的判定

作者:互联网


/**
 * 满二叉树的判定
 */

public class FullBinaryTree {
    public static void main(String[] args) {
        BinaryTreeNode node1 = new BinaryTreeNode(1);
        BinaryTreeNode node2 = new BinaryTreeNode(2);
        BinaryTreeNode node3 = new BinaryTreeNode(3);
        BinaryTreeNode node4 = new BinaryTreeNode(4);
        BinaryTreeNode node5 = new BinaryTreeNode(5);
        BinaryTreeNode node6 = new BinaryTreeNode(6);
        BinaryTreeNode node7 = new BinaryTreeNode(7);
        BinaryTreeNode node8 = new BinaryTreeNode(8);
        BinaryTreeNode node9 = new BinaryTreeNode(9);
        node1.left = node2;
        node1.right = node3;
        node3.left = node4;
        ReturnData data = isFull(node1);
        System.out.println(data.node_num == ((int) Math.pow(2, data.height) - 1));
    }

    public static class ReturnData {
        int height;
        int node_num;
        public ReturnData(int height, int node_num){
            this.height = height;
            this.node_num = node_num;
        }
    }

    public static ReturnData isFull(BinaryTreeNode root){
        if (root == null){
            return new ReturnData(0, 0);
        }
        ReturnData left = isFull(root.left);
        ReturnData right = isFull(root.right);
        int height = (Math.max(left.height, right.height)) + 1;
        int node_num = left.node_num + right.node_num + 1;
        return new ReturnData(height, node_num);
    }
}


标签:node,ReturnData,height,BinaryTreeNode,num,判定,二叉树,new
来源: https://www.cnblogs.com/codegzy/p/15427028.html