[IT 필기시험 면접 문제 정리] 두 갈래 나무를 정하고 층마다 체인 테이블을 생성합니다.

4521 단어 면접 문제
【시험문제 설명】 함수를 정의하고 두 갈래 트리를 지정하여 층마다 체인표를 생성한다
We can do a simple level by level traversal of the tree, with a slight modification of the breath-first traversal of the treeIn a usual breath first search traversal, we simply traverse the nodes without caring which level we are on In this case, it is critical to know the level We thus use a dummy node to indicate when we have finished one level and are starting on the next
[참조 코드]
 1     public static ArrayList<LinkedList<Node>> findLevelLinkList(Node root)

 2     {

 3         int level = 0;

 4         ArrayList<LinkedList<Node>> result = 

 5                 new ArrayList<LinkedList<Node>>();

 6         LinkedList<Node> list = new LinkedList<Node>();

 7         

 8         list.add(root);

 9         result.add(level, list);

10         

11         while(true)

12         {

13             list = new LinkedList<Node>();

14             for(int i=0;i< result.get(level).size();i++)

15             {

16                 Node n = result.get(level).get(i);

17                 if(n!=null)

18                 {

19                     if(n.left!=null) 

20                         list.add(n.left);

21                     if(n.right!=null)

22                         list.add(n.right);

23                 }

24             }

25             if(list.size() >0)

26                 result.add(level+1, list);

27             else

28                 break;

29             level++;

30         }

31         return result;

32     }

좋은 웹페이지 즐겨찾기