【力扣练习题】中序遍历二叉树

public class MidTreeNode {
	/*给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。*/
	public static void main(String[] args) {
		//[1,null,2,3]
		
		TreeNode t1=new TreeNode(1);
		TreeNode t2=new TreeNode(2);
		TreeNode t3=new TreeNode(3);
		t1.left=null;
		t1.right=t2;
		t2.left=t3;
		
		List l=mid(t1);
		System.out.println(l);
		
		
	}
	public static List mid(TreeNode node){
        //创建存结点值的list集合
		List list=new ArrayList<>();
		insert(node,list);
		return list;
	}
	public static void insert(TreeNode t,List list) {
		if(t==null)//当前结点为空,即其无左右孩子结点,直接退出
			return;
		insert(t.left,list);//递归调用直到找到最左的孩子结点添加val值
		list.add(t.val);//添加当前左孩子的根节点的val
		insert(t.right,list);//递归调用直到找到最右的孩子结点添加val值
	}
}
class TreeNode{
	int val;
	TreeNode left;
	TreeNode right;
	public TreeNode() {
		
	}
	public TreeNode(int val) {
		this.val=val;
	}
	
	public TreeNode(int val,TreeNode left,TreeNode right) {
		this.val=val;
		this.left=left;
		this.right=right;
	}
	
}

你可能感兴趣的:(leetcode,算法,数据结构,java)