Pregunta de entrevista de Meta

Print Tree nodes level by level

Respuestas de entrevistas

Anónimo

1 feb 2018

class Node{ var value:T var left:Node? var right:Node? init(value:T) { self.value = value } } func treeLevels(node:Node, f:(T)->()){ var queue = [Node]() queue.append(node) while !queue.isEmpty{ let n = queue.removeFirst() f(n.value) if let left = n.left{ queue.append(left) } if let right = n.right{ queue.append(right) } } } var root = Node(value: 1) root.left = Node(value: 2) root.right = Node(value: 3) root.right?.left = Node(value: 4) root.right?.right = Node(value: 5) treeLevels(node: root, f: {print($0)})

Anónimo

11 abr 2018

class Node { var left : Node? var right : Node? let value : T init(newValue: T) { value = newValue } func depth() -> Int { // recursive var leftDepth = 0 var rightDepth = 0 if let left = left { leftDepth = 1 + left.depth() } if let right = right { rightDepth = 1 + right.depth() } return max(rightDepth, leftDepth) } func depthNonRecursively() -> Int { // Non Recursive var depth = -1 var arrNodes : Array = [self] while arrNodes.count > 0 { depth += 1 var newNodes : Array = [] for node in arrNodes { if let rightNode = node.right { newNodes.append(rightNode) } if let leftNode = node.left { newNodes.append(leftNode) } } arrNodes = newNodes } return depth } } let node1 = Node(newValue: 2) let node1Left = Node(newValue: 2) node1.left = node1Left node1Left.right = Node(newValue: 4) let node1depth = node1.depthNonRecursively()

Anónimo

24 ene 2021

Through questions like this, interviewers are mostly trying to test your skillset (and its relevance to the role) as robustly as possible, so be prepared for multiple offshoots and followups. It could be a useful exercise to do mocks with friends or colleagues in Facebook to get a real sense of what the interview is actually like. Alternatively Prepfully has a ton of Facebook IOS Developer experts who provide mock interviews for a pretty reasonable amount. prepfully.com/practice-interviews