相关疑难解决方法(0)

如何从单链表的末尾找到第n个元素?

下面的函数试图寻找nth最后一个单向链表的元素.

例如:

如果元素是8->10->5->7->2->1->5->4->10->10结果是 7th最后一个节点是7.

任何人都可以帮助我解释这段代码是如何工作的,还是有更好更简单的方法?

LinkedListNode nthToLast(LinkedListNode head, int n) {
  if (head == null || n < 1) {
    return null;
  }

  LinkedListNode p1 = head;
  LinkedListNode p2 = head;

  for (int j = 0; j < n - 1; ++j) { // skip n-1 steps ahead
    if (p2 == null) {
      return null; // not found since list size < n
    }
    p2 = p2.next;
  }

  while (p2.next != …
Run Code Online (Sandbox Code Playgroud)

algorithm linked-list data-structures

59
推荐指数
4
解决办法
9万
查看次数

标签 统计

algorithm ×1

data-structures ×1

linked-list ×1