이진 트리의 왼쪽 보기

이진 트리가 주어지면 왼쪽 보기를 인쇄합니다. 이진 트리의 왼쪽 보기는 왼쪽에서 트리를 방문할 때 표시되는 노드 집합입니다. 작업은 트리의 루트를 인수로 받아들이는 함수 leftView()를 완성하는 것입니다.

Left view of following tree is 1 2 4 8.

          1
       /     \
     2        3
   /     \    /    \
  4     5   6       7
   \
     8


해결책 :

/* 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);
    }
}

좋은 웹페이지 즐겨찾기