链表刷题总结-技巧以及注意事项

技巧:

1.插入头节点的技巧,诸如:删除链表中重复节点的题,反转链表某个区间的题,链表的直接插入,合并连个链表(可以先在链表1的头部新增一个头部节点,然后将该新增的头节点指向链表1的头节点,然后再进行操作,并将合并后的链表用链表1返回)等,通过插入头节点,可以使得对头节点的操作同后面节点的操作一样;

2.设置一快一慢指针,诸如:判断一个链表是否有环,有环环的入口点,链表的快速排序(通过求中间节点,然后merge,递归实现的快速排序)等

(1)其中最常见的就是找到链表的中间节点,由此引出来的一系列题目,找链表的中间节点,可以实现链表的快速排序,判断链表是不是回文(找到链表的中间节点,然后将链表的后半段进行逆转,然后将前后两段进行比较),将一个有序链表转换成BST树(找到链表的中间节点,设中间节点为mid,然后简历root,则root->left=buildBST(head),root->right=(mid),然后递归的构建BST树即可)

(2)求两个单链表的交点

3.将单链表头尾相连,诸如单链表的旋转一题中,则是将单链表头尾相连,但注意考虑给出左旋转的数K和链表长度n的比较,k=k%n


注意事项:

1.需要考虑所有的操作头节点是不是发生了变化,这点需要特别注意

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值