跳至主要內容

链表倒序遍历

linwu小于 1 分钟

链表倒序遍历

我们的任务是倒序遍历给定的链表

比如下面的链表

遍历的顺序应该是

37 → 99 → 12

因为我们每个节点只访问一次,时间复杂度应该是O(n)

完整代码

/**
 * Traversal callback function.
 * @callback traversalCallback
 * @param {*} nodeValue
 */

/**
 * @param {LinkedListNode} node
 * @param {traversalCallback} callback
 */
function reverseTraversalRecursive(node, callback) {
  if (node) {
    reverseTraversalRecursive(node.next, callback);
    callback(node.value);
  }
}

/**
 * @param {LinkedList} linkedList
 * @param {traversalCallback} callback
 */
export default function reverseTraversal(linkedList, callback) {
  reverseTraversalRecursive(linkedList.head, callback);
}

参考

关注公众号

和小伙伴们一起学习

加入技术交流群

扫描二维码 备注加群