public static TreeNode maxTree1(int[] A) {
		TreeNode h=null;
		for (int a:A) {
			TreeNode t=new TreeNode(a);
			if (h==null) {
				h=t;
			} else {
				if (a>h.val) {
					t.left=h;
					h=t;
				} else {
					if (h.right==null) {
						h.right=t;
					} else if (h.right.val<a) {
						t.left=h.right;
						h.right=t;
					} else {
						TreeNode p=h.right;
						while (p.right!=null&&p.right.val>a)
							p=p.right;
						t.left=p.right;
						p.right=t;
					}
				}
			}
		}
		return h;
	}