class Node {
	public Node left;
	public int data;
	public Node right;

	public Node(int val) {
		this.data = val;
	}

	@Override
	public String toString() {
		return this.data + "";
	}
}

 class LeftView {

	public static int maxLevel = 0;

	public void leftView(Node root, int level) {
		if (root == null)
			return;

		if (maxLevel < level) {
			System.out.println(root.data);
			maxLevel = level;
		}

		leftView(root.left, level + 1);
		leftView(root.right, level + 1);
	}

	public static void main(String[] args) {
		Node root = new Node(1);
		root.left = new Node(2);
		root.left.left = new Node(4);
		root.left.right = new Node(5);
		root.left.right.left = new Node(7);
		root.left.right.right = new Node(8);
		root.left.right.left.left = new Node(9);

		root.right = new Node(3);
		root.right.left = new Node(6);
		root.right.right = new Node(7);

		LeftView obj = new LeftView();
		obj.leftView(root, 1);	
	}
}
