【发布时间】:2016-05-15 10:32:33
【问题描述】:
为了更好地理解递归,我决定尝试使用递归函数在链表中查找项目,而不是 while 循环。
接近尾声,我的递归函数似乎通过返回正确的节点来做正确的事情,但随后它意外地运行 return 几次(我不知道为什么)并返回一个不正确的对象。我错过了什么吗?
var linkedList = {
element: 'head',
next: {
element: 'SF',
next: {
element: 'LA',
next: {
element: 'SD',
next: {
element: 'NY',
next: null
}
}
}
}
}
function getItem(city, list) {
var item = list
if (item.element != city) {
item = item.next
getItem(city, item)
}
return item
}
console.log( getItem('SD', linkedList ) ) // logs "SF" node but I expect "SD" node
【问题讨论】:
标签: javascript function recursion linked-list