美文网首页
链表表头和指向指针的指针

链表表头和指向指针的指针

作者: 叁璋 | 来源:发表于2015-03-19 22:02 被阅读0次

 在看数据结构的链表一章时,一直对于链表表头这个知识点比较迷惑。

下面是链表的末尾添加一个节点的函数原型,为什么第一个形参是这样定义的?其中ListNode表示一个节点。

void AddToTail( ListNode** pHead, int value);

问题就是为什么传递一个链表的信息需要使用一个指向指针的变量?

第一个问题:问什么要使用一个指针来表示链表?

 链表示意图

可以从反面来回答这个问题,如果不使用指针来表示链表而直接使用结点表示会怎么样?

在处理删除第一个结点或者插入第一个结点时将很麻烦,而使用指针则非常灵活,处理首结点和其他结点方法是相同的,不需要特殊处理。

第二个问题:为什么需要使用指向指针的指针来传递参数?

因为在函数过程中可能会更改表头的地址指针,如果直接传递指针的话就是按值传递,只能改变指针指向的内存值并不能改变指针本身,只有使用一个指向指针的指针来传递传递参数才能改变表头的指针。

附录:

指向指针的指针刚开始接触是很难形象的想象出来,所以我用代码实验了一下,以便帮助大家理解。

 代码  示意图  执行结果

相关文章

  • 找到链表倒数第k个节点

    问题:输入链表头,以及k的值,返回链表倒数第k个值 解题思路 新建两个指针,指针1和指针2,都指向链表头,指针2 ...

  • 链表表头和指向指针的指针

    在看数据结构的链表一章时,一直对于链表表头这个知识点比较迷惑。 下面是链表的末尾添加一个节点的函数原型,为什么第一...

  • [LeetCode] 19. Remove Nth Node F

    这题有几个关键的点 建立哨兵(sentinel)节点便于返回链表头 快慢指针:当快指针指向倒数第1个节点,慢指针必...

  • 数据结构与算法第二讲:[单向循环链表]

    单向循环链表 单向循环链表:单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链...

  • 单链表的删除

    单链表第i个数据删除结点的算法思路 声明一指针p指向链表头指针,初始化j从1开始; 当j

  • 数据结构与算法学习 (03)单向循环链表

    什么是单向循环链表?如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表...

  • 单向循环链表

    如果把单链表的最后一个结点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表。 1.循环链表的创...

  • fastbin attack house of sprit

    1.实例 2014 hack.lu oreo题目分析add函数通过一个全局单链表头指针指向结构链表:0000000...

  • 10进阶之路-常用算法

    1.字符串翻转 一个指针指向字符串开头,一个指针指向字符串的结尾。交换指针。 2.链表翻转 头插发。指针指向链表的...

  • 0x03单向循环链表

    定义:如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表,通俗讲就是把...

网友评论

      本文标题:链表表头和指向指针的指针

      本文链接:https://www.haomeiwen.com/subject/inewxttx.html