• Java创建二叉树


    版权声明:本文为博主原创文章,未经博主同意不得转载。

    https://blog.csdn.net/yeweiouyang/article/details/37814461

    二叉树的值保存在数组中,以0作为分隔,数字0表示空节点,数组

    public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};
    表示的二叉树是:


    /**
     * 维护构建二叉树的值和值索引
     */
    public static class TreeValue {
    	public static int index = 0;
    	public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};
    }
    
    /**
     * Create A Binary Tree with TreeValue
     * 
     * @node: a tree node
     * @i: the index of tree value
     */
    public static TreeNode createTree(TreeNode node, int i) {
    	if (0 == TreeValue.TREE_VALUE[i]) {
    		return null;
    	} else {
    		node.setVal(TreeValue.TREE_VALUE[i]);
    	}
    	
    	TreeNode leftChild = new TreeNode();
    	node.left = createTree(leftChild, ++TreeValue.index);
    	TreeNode rightChild = new TreeNode();
    	node.right = createTree(rightChild, ++TreeValue.index);
    
    	return node;
    }
    
    /**
     * Definition for binary tree
     */
    public static class TreeNode {
    	int val;
    	TreeNode left;
    	TreeNode right;
    	
    	TreeNode() {
    		left = null;
    		right = null;
    	}
    	TreeNode(int val) {
    		this.val = val;
    		left = null;
    		right = null;
    	}
    	
    	public void setVal(int val) {
    		this.val = val;
    	}
    }
    
    public static void main(String[] args) {
    	TreeNode root = new TreeNode();
    	root = createTree(root, index);
    }


  • 相关阅读:
    兼容 数组 api map代码
    => 应用在js回调函数中
    let防止变量声明提前
    for-in 的坑
    call 与 apply的区别
    放大镜 鼠标滑入 鼠标滑轮放大
    js 获取元素宽
    [转]AES加密填充模式
    快被AES整崩溃了
    [转]C++ Socket编程步骤
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10951028.html
  • Copyright © 2020-2023  润新知