个人理解,哑节点(dummy node)是初始值为NULL的节点,创建在使用到链表的函数中,可以起到避免处理头节点为空的边界问题的作用,减少代码执行异常的可能性。
也就是说,哑节点的使用可以对代码起到简化作用(省略当函数的入口参数为空时的判断)。
Below: 补充于2018.10.09
这里首先要感谢stackoverflow网站attaboy182的回答,
本文参考出处:https://stackoverflow.com/questions/37324972/what-is-a-dummy-head
如下,我们先定义结构体:
struct ListNode {
int val;
struct ListNode *next;
};
再定义函数为:
ListNode *addNode( ListNode *node, int num){
// 函数返回的是尾节点
struct ListNode *new = (struct ListNode*) malloc(