Appearance
获取指定层级的所有节点
递归
javascript
function getNodesByLevel(root, level) {
const result = [];
function helper(root, level) {
if (root === null) {
return;
}
if (level === 1) {
result.push(root.val);
} else if (level > 1) {
helper(root.left, level - 1);
helper(root.right, level - 1);
}
}
helper(root, level);
return result;
}
Test Cases
javascript
const { getNodesByLevel } = require('../docs/algo/tree/getNodesByLevel');
const { generateTree } = require('../docs/algo/common/generator');
describe('getNodeByLevel', () => {
it('Empty tree', () => {
expect(getNodesByLevel(null)).toEqual([]);
});
it('Is not empty tree', () => {
const root = generateTree();
expect(getNodesByLevel(root, 2)).toEqual([2, 3]);
});
});
shell
# /test/getNodesByLevel.test.js
jest --testNamePattern=getNodesByLevel