import java.beans.IntrospectionException;
import java.util.*;
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode (int val,TreeNode left,TreeNode right)
{
this.val=val;
this.left=left;
this.right=right;
}
}
public class Solution {
public static List<Integer> preOrder(TreeNode root){
if(root==null){
return new ArrayList<>();
}
List<Integer> list=new ArrayList<>();
List<Integer> leftPreOrder=preOrder(root.left);
List<Integer> rightPreOrder=preOrder(root.right);
list.add(root.val);
list.addAll(leftPreOrder);
list.addAll(rightPreOrder);
return list;
}
public static int getHeight(TreeNode root){
if(root==null){
return 0;
}
int nl=getHeight(root.left);
int nr=getHeight(root.right);
return nl>nr?nl+1:nr+1;
}
public static int size(TreeNode root){
if(root==null){
return 0;
}
int sLeft=size(root.left);
int sRight=size(root.right);
return sLeft+sRight+1;
}
public static boolean findKey(TreeNode root,int val){
if(root==null){
return false;
}else if(root.val==val){
return true;
}else{
if( findKey(root.left,val)){
return true;
}
return findKey(root.right,val);
}
}
public static void main(String[] args) {
TreeNode node5=new TreeNode(5,null,null);
TreeNode node4=new TreeNode(4,null,node5);
TreeNode node3=new TreeNode(3,null,null);
TreeNode node7=new TreeNode(7,null,null);
TreeNode node6=new TreeNode(6,null,node7);
TreeNode node2=new TreeNode(2,node3,node6);
TreeNode node1=new TreeNode(1,node4,node2);
System.out.println(preOrder(node1));
System.out.println("====================");
System.out.println(levelOrder(node1));
System.out.println("二叉树的高度");
System.out.println(getHeight(node1));
System.out.println("二叉树的结点数量");
System.out.println(size(node1));
System.out.println("查找二叉树中是否有7");
System.out.println(findKey(node1,7));
}
}
输出结果: