摘要:
1、链表相交是两个指针相同而非值相同。 class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *p=headA,*q=headB; int len1=0, 阅读全文
posted @ 2023-03-17 16:12
我的秘密小屋
阅读(14)
评论(0)
推荐(0)
摘要:
设一快一慢指针,快指针先走N步,等快指针到达最后一个元素时,此时慢指针恰好在倒数第N个元素的前一个元素,然后删掉就可以了。 class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* p 阅读全文
posted @ 2023-03-17 15:53
我的秘密小屋
阅读(13)
评论(0)
推荐(0)
摘要:
两两交换链表中的节点: 先把一个链表分为两个链表,再把两个链表组成一个链表。 注意最后可能有一个链表有剩余,但此时另一个链表的指针已经到了NULL,要再遍历一遍/提前记录(感觉有点麻烦)。 class Solution { public: ListNode* swapPairs(ListNode* 阅读全文
posted @ 2023-03-17 15:27
我的秘密小屋
阅读(12)
评论(0)
推荐(0)
摘要:
1、反转链表的常见几种: 头插法;双指针方法; 头插法创建一个新节点再头插比较合适;如果在原来的链表头插法,要对第一个元素的next在适当的时候变为NULL。 双指针的方法比较好用,用两个指针一前一后实现链表反转。 双指针: class Solution { public: ListNode* re 阅读全文
posted @ 2023-03-17 14:16
我的秘密小屋
阅读(15)
评论(0)
推荐(0)