【问题标题】:how to understand double pointers in a linked list如何理解链表中的双指针
【发布时间】:2015-11-06 10:52:13
【问题描述】:

我找到了一个有用的页面,它解释了how to use double pointers in a linked list

但有几点我无法理解。

void AddNodeSorted(node* pNewNode)
{
  node** ppScan = &pRootNode;
  while(*ppScan != NULL && compare(*ppScan,pNewNode))
    ppScan = &(*ppScan)->pNext;

  pNewNode->pNext = *ppScan;
  *ppScan = pNewNode;
}

在这个函数中,我无法理解最后两行是如何工作的。在我看来,在while loop 之后,新项目需要在ppScan 间接指向的元素之前插入。

所以pNewNode->pNext = *ppScan 工作正常。那么*ppScan = pNewNode 是什么意思呢? pNewNode->next = pNewNode??

【问题讨论】:

    标签: c linked-list double-pointer


    【解决方案1】:

    因为 "ppScan = &(*ppScan)->pNext;","*ppScan = pNewNode;"会让最后一个元素指向新节点。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      相关资源
      最近更新 更多