题目描述
给定一个 N 叉树,返回其节点值的 前序遍历 。
题目分析
前面我们分析过二叉树的前序遍历,N叉树与二叉树相似,唯一不同的就是二叉树节点固定 left、right,N叉树则需要遍历节点然后进行递归。
前序遍历:根、左、右
下面为递归思路分析
1、函数意义:将N叉树前序遍历进行输出
2、边界条件:树为空
3、 递归过程,从root开始,遍历递归当前二叉树的节点,直到结束
代码实现
var __preOrder = (root, ans) => {
if (!root) return;
ans.push(root.val);
for (let i = 0; i < root.children.length; i++) {
if (root.children[i]) {
__preOrder(root.children[i], ans);
}
}
return;
};
/**
* @param {Node|null} root
* @return {number[]}
*/
var preorder = function (root) {
const ans = [];
__preOrder(root, ans);
return ans;
};