繁体   English   中英

如何理解链表中的双指针

[英]how to understand 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 ??

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM