构造二叉搜索树

节点

public class TreeNode { 

	int val;
	TreeNode right;
	TreeNode left;
	
	public TreeNode() { };
	
	public TreeNode(int val) { 
		this.val = val;
	}

	public int getVal() { 
		return val;
	}

	public void setVal(int val) { 
		this.val = val;
	}

	public TreeNode getRight() { 
		return right;
	}

	public void setRight(TreeNode right) { 
		this.right = right;
	}

	public TreeNode getLeft() { 
		return left;
	}

	public void setLeft(TreeNode left) { 
		this.left = left;
	};
	
	
}

添加节点

/*** * 二叉搜索 */
public class BinarySearchTree { 
	private TreeNode root=null;
	
	
	/*** * 添加节点 */
	public void add(int data) { 
		TreeNode node = new TreeNode(data);
		if(root == null) { 
			root = node;
			return;
		}
		
		TreeNode current = root;
		
		while(true) { 
			if(current.val == data) { 
				return;
			}
			if(current.val > data) { 
				if(current.left == null) { 
					current.left = node;
					return;
				}
				current = current.left;
			}else { 
				if(current.right == null) { 
					current.right = node;
					return;
				}
				current = current.right;
			}
		}
		
	}
	
	public TreeNode getTreeNode() { 
		return root;
	}
	
	public static void main(String[] args) { 
		BinarySearchTree tree = new BinarySearchTree();
		tree.add(0);
		tree.add(4);
		tree.add(5);
		tree.add(1);
		
		System.out.println(JSON.toJSONString(tree.getTreeNode()));;
	}
}
    原文作者:Myueye
    原文地址: https://blog.csdn.net/Myueye/article/details/123355455
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞