Pergunta de entrevista da empresa LinkedIn

Print a binary tree level-by-level

Respostas da entrevista

Sigiloso

23 de abr. de 2018

Implement BFS. function GRAPH(){ this.vertices = {}; this.edges = {}; } GRAPH.prototype.BFS = function(node) { let q = new Queue(); const self = this; let currNode = self.vertices[node]; q.enqueue(currNode); while(!q.isEmpty()){ console.log( "q is - " + q.print()); let node = q.dequeue(); node.visited = true; console.log("Node = " + node.data); self.edges[node.data] && self.edges[node.data].forEach(function(n) { if(!n.visited) { console.log("n = " + n.data); q.enqueue(n); } }); } };

Sigiloso

24 de abr. de 2018

static List currentLevel; static List nextLevel; public static void printTree(Node n) { currentLevel = new ArrayList(); nextLevel = new ArrayList(); currentLevel.add(n); while(printLevel()) { System.out.println(); } } public static boolean printLevel() { if(currentLevel.size() == 0) return false; for(Node n : currentLevel) { System.out.print(n.value + " "); if(n.left != null) nextLevel.add(n.left); if(n.right != null) nextLevel.add(n.right); } currentLevel = nextLevel; nextLevel = new ArrayList(); return true; }