var findLeaves = function(root) {
let visited =[];
function isLeaf(node){
if(node.left === null && node.right === null)
return true;
return false;
}
function bfsTraverse(node){
let Q = [];
Q.push(node);
let visitedSub=[];
while(Q.length!=0){
let curr = Q.shift();
if(curr.left){
if(isLeaf(curr.left)){
visitedSub.push(curr.left.val);
curr.left = null;
}
else Q.push(curr.left);
}
if(curr.right){
if(isLeaf(curr.right)){
visitedSub.push(curr.right.val);
curr.right = null;
}
else Q.push(curr.right);
}
}
visited.push(visitedSub);
return node;
}
while (root!= null){
if(isLeaf(root)) {
visited.push([root.val]);
root = null;
break;
}
root = bfsTraverse(root)
}
return visited;};