package basic; public class BinaryTreeNode <T extends Comparable<T>>{ private T data; private BinaryTreeNode<T> left; private BinaryTreeNode<T> right; public BinaryTreeNode(T o){ this.data = o; this.left = null; this.right = null; } public Object getData() { return data; } public void setData(T data) { this.data = data; } public BinaryTreeNode<T> getLeft() { return left; } public void setLeft(BinaryTreeNode<T> left) { this.left = left; } public BinaryTreeNode<?> getRight() { return right; } public void setRight(BinaryTreeNode<T> right) { this.right = right; } public BinaryTreeNode<T> insert(T o){ BinaryTreeNode<T> current = this; BinaryTreeNode<T> addTreeNode = new BinaryTreeNode<>(o); while(true){ //如果传入的值比但前节点的值小 if(o.compareTo(current.data) < 0){ if(current.left != null){ current = current.left; }else { current.left = addTreeNode; break; } }else{ if(current.right != null){ current = current.right; }else{ current.right =addTreeNode; break; } } } return addTreeNode; } public LinkedList prevOrder(BinaryTreeNode<T> binaryTreeNode){ LinkedList linkedList = new LinkedList(); preOrder(binaryTreeNode, linkedList); return linkedList; } private void preOrder(BinaryTreeNode<T> binaryTreeNode,LinkedList linkedList){ if(binaryTreeNode.left != null){ preOrder(binaryTreeNode.left, linkedList); } linkedList.add(binaryTreeNode.data); if(binaryTreeNode.right != null){ preOrder(binaryTreeNode.right, linkedList); } } }