ZX2021
ZX2021
全部文章
分类
未归档(1)
题解(72)
归档
标签
去牛客网
登录
/
注册
ZX2021的博客
程序员的自我修养
全部文章
(共11篇)
题解 | #合并两个排序的链表#
从链表1和链表2的头部选择一个小的节点插入到新节点中,new_head记录新链表的头部,new_tail记录新链表的尾部。第一个插入的节点就是new_head,每次插入都去更新new_tail。某一个链表结束以后,总有一个链表剩下某些节点,再进行遍历插入即可 /* struct ListNode {...
链表
2021-08-04
0
514
题解 | #链表中环的入口结点#
快慢指针找相遇点,相遇时慢指针从头开始跑,快指针从相遇点继续跑,最终在环的入口处相遇。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NU...
环
链表
2021-08-03
0
378
题解 | #两个链表生成相加链表#
链表翻转后节点相加(使用栈模拟),如果有进位则记录,产生新的结点以头插法插入到新的链表;注意加完以后需要检查最后是否有进位,如果有进位就还需要再插入一个新的节点。 /** * Definition for singly-linked list. * struct ListNode { * ...
链表
2021-08-02
0
572
题解 | #两个链表的第一个公共结点#
将两个链表倒过来比较,如果元素相同则继续比较,直到遇到不是相同的元素时退出循环。这里使用stack来将链表倒过来。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : ...
链表
2021-08-02
0
431
题解 | #两个链表的第一个公共结点#
让指针走完两条链表,并且最多只能走一次。如果任何一个链表为空则直接返回空指针。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NU...
链表
2021-08-02
0
441
题解 | #链表中的节点每k个一组翻转#
采用fast、slow快慢指针来进行分组,对每个分组使用头插法对链表进行翻转。使用curr_group_tail来记录当前组的尾部,即采用头插法时该节点为分组的首节点。进行到下一组时,curr_group_tail即是新链表的尾部。若剩下的节点不够k个则直接对链表进行链接即可。 /** * str...
链表
快慢指针
链表翻转
2021-08-02
0
415
题解 | #链表中的节点每k个一组翻转#
采用快慢指针,快指针与慢指针相距k个节点,每次分组后采用头插法让快指针到慢指针的节点翻转。如果最后不够k个节点,则直接拼接链表。注意每次分组后需要用新链表的尾节点去链表剩下没有遍历的节点以保证链表不会断。这里没有去记录尾节点,而是通过头节点去遍历得到尾节点,应该可以优化直接记录下尾节点。 /** ...
链表
翻转
2021-08-02
0
387
题解 | #单链表的排序#
从链表的第一个节点开始,找到最小的元素进行交换。依次进行,找到次小的元素。。。 /** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /...
排序
链表
2021-08-02
0
365
题解 | #删除链表的倒数第n个节点#
将链表的节点存放到vector中,通过vector的size()与n的差得到节点的索引,通过索引删除即可。 /** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution {...
链表
2021-08-02
0
430
题解 | #合并有序链表#
遍历l2,将l2的节点加入到l1中,遍历l1做检查,如果l2的val比l1的大则插入到l1的首部(注意到l1已经被改变,所以需要一个变量来保持最终的l1),否则找到l2应该插入到l1的位置,插入即可。应该注意保持链表不会断。 /** * struct ListNode { * int va...
链表
2021-08-02
0
403
首页
上一页
1
2
下一页
末页