366. Find Leaves of Binary Tree

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;

};

Comments (2)