给定单向链表的最后一个节点,我们如何找到头节点?
假设给定 JSON:
{"id": "A","下一个": "B"},{"id": "B","下一个": "C"}{"id": "C","下一个": "D"}{"id": "D","下一个":空}
现在假设上面没有排序,我们需要找出 HEAD 元素 'A'。
您可以使用
Array.prototype.find 查找id
不是列表中另一个对象的值next
的元素。假设一个有效的非空单向链表,必须只有一个元素满足该条件(头部(。如果列表为空head
则将分配值 undefined
。
const json = '[{"id": "A", "next": "B"}, {"id": "B", "next": "C"},{"id": "C", "next": "D"},{"id": "D", "next": null}]';
const objects = JSON.parse(json);
const head = objects.find( a => ! objects.find( b => a.id === b.next ) );
console.log( head );