链表问题技巧:使用伪头节点

小技巧:
对于链表问题,创建头节点时不知道合适的节点值,因此通常需要先初始化一个预先指针(伪头节点) pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值。

struct ListNode {
    
    
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {
    
    }
};
ListNode* pre = new ListNode(0); //0为预先指针的值,pre->next指向head
ListNode* current = pre; //移动current

return pre->next; //返回真实头节点

例子:
1、算法题:2. 两数相加
2、面试题25. 合并两个排序的链表

总结:

1、使用伪头节点(预先指针)可以在不确定链表头节点值的情况下初始化,从而可以进行之后的建立链表过程,但需要返回pre->next

猜你喜欢

转载自blog.csdn.net/qq_33726635/article/details/106445069