小技巧:
对于链表问题,创建头节点时不知道合适的节点值,因此通常需要先初始化一个预先指针(伪头节点) pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值。
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* pre = new ListNode(0);
ListNode* current = pre;
return pre->next;
例子:
1、算法题:2. 两数相加
2、面试题25. 合并两个排序的链表
总结:
1、使用伪头节点(预先指针)可以在不确定链表头节点值的情况下初始化,从而可以进行之后的建立链表过程,但需要返回pre->next
。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)