刚才有个考试,里面需要用到push方法,然而在编译的时候报了push is not a function的错误,请问这是为啥?
/**
* @param {number[][]} edges
* @return {number}
*/
var treeDiameter = function (edges) {
if (edges.length === 0) return 0
let graph = {}
for (let i = 0; i < edges.length; i++) {
if (graph[edges[i][0]]) {
graph[edges[i][0]].push(edges[i][1])
} else {
graph[edges[i][0]] = [edges[i][1]]
}
if (graph[edges[i][1]]) {
graph[edges[i][1]].push(edges[i][0])
} else {
graph[edges[i][1]] = [edges[i][0]]
}
}
const res = []
let max = 0
const dfs = (cur, pre, path) => {
if (!graph[cur] || (graph[cur].length === 1 && graph[cur][0] === pre)) {
max = path.length > max ? path.length - 1 : max
return
}
for (let i = 0; i < graph[cur].length; i++) {
if (graph[cur][i] === pre) continue;
let next = graph[cur][i]
path.push(next)
dfs(next, cur, path)
path.pop()
}
}
for (let i = 0; i <= edges.length; i++) {
dfs(i, -1, [i])
}
return max
};