sum
by krustnic
JavaScript
const source = {
value: 4,
next: [
{
value: 3,
next: [
{
value: 3,
next: [
{
value: 7,
next: [
{
value: 3,
next: []
},
]
},
]
},
{
value: 7,
next: [
{
value: 3,
next: []
},
]
},
]
},
{
value: 3,
next: []
}
]
}
function sum(data) {
if (data.next.length === 0) {
return data.value
}
let s = data.value
for(let i=0; i<data.next.length; i++) {
s += sum(data.next[i])
}
return s
}
function sum2(data) {
let s = 0
const queue = []
queue.push(data)
while(queue.length !== 0) {
const top = queue[0]
for(let i=0; i<top.next.length; i++) {
queue.push(top.next[i])
}
const leave = queue.shift()
console.log(leave.value)
s += leave.value
}
return s
}
console.log(sum(source))
console.log(sum2(source))