Raz*_*orm 9 language-agnostic algorithm linked-list
我听到一个采访问题:
"在恒定的空间和线性时间内向后打印单链表."
我的解决方案是将链接列表转换到适当位置,然后将其打印出来.还有另一种非破坏性的解决方案吗?
Jer*_*fin 11
您已经找到了大部分答案:将链接列表反向到位,然后将列表遍历到开头以打印它.为了防止(永久)破坏性,当您将其链接到开头并打印时,再次将链接列表反转到位.
但请注意,这只适用于您只有一个执行线程,或者使整个遍历成为一个关键部分,因此一次只有一个线程执行它(即,第二个线程永远不能使用中间的遍历).
如果在打印后再次将其反转,则不再具有破坏性,因为原始订单已恢复.