Given a Binary Tree, print Left view of it. Left view of a Binary Tree is set of nodes visible when tree is visited from Left side. The task is to complete the function leftView(), which accepts root of the tree as argument.

```
Left view of following tree is 1 2 4 8.
1
/ \
2 3
/ \ / \
4 5 6 7
\
8
```

**Solution** :

```
/* A Binary Tree node
class Node
{
int data;
Node left, right;
Node(int item)
{
data = item;
left = right = null;
}
}*/
class Tree
{
//Function to return list containing elements of left view of binary tree.
int max = Integer.MIN_VALUE;
ArrayList<Integer> leftView(Node root)
{
// Your code here
ArrayList<Integer> list = new ArrayList<>();
leftViewU(root,list,0);
return list;
}
public void leftViewU(Node node,List<Integer> list,int current){
if(node == null) return;
if(current>max){
list.add(node.data);
max = current;
}
leftViewU(node.left,list,current+1);
leftViewU(node.right,list,current+1);
}
}
```

## Top comments (0)