赞
踩
- class Solution {
- public:
- ListNode* swapPairs(ListNode* head) {
- ListNode *dummyHead = new ListNode(0);
- dummyHead->next = head;
- ListNode *cur = dummyHead;
- while (cur->next != nullptr && cur->next->next != nullptr) {
- ListNode *tmp = cur->next;
- cur->next = cur->next->next;
- tmp->next = cur->next->next;
- cur->next->next = tmp;
- cur = cur->next->next;
- }
- return dummyHead->next;
- }
- };
- class Solution {
- public:
- ListNode* removeNthFromEnd(ListNode* head, int n) {
- ListNode *dummyHead = new ListNode(0);
- dummyHead->next = head;
- ListNode *cur = dummyHead;
- int count = 0;
- while (cur != nullptr) {
- count++;
- cur = cur->next;
- }
- // if (n > count) return nullptr;
- int k = count - n - 1;
- cur = dummyHead;
- while (k--) {
- cur = cur->next;
- }
- ListNode *tmp = cur->next;
- cur->next = cur->next->next;
- delete tmp;
- tmp = nullptr;
- return dummyHead->next;
- }
- };
- class Solution {
- public:
- ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
- ListNode *curA = headA;
- ListNode *curB = headB;
- int countA = 0, countB = 0;
- while (curA != NULL) {
- countA++;
- curA = curA->next;
- }
- while (curB != NULL) {
- countB++;
- curB = curB->next;
- }
- int k;
- if (countA > countB) {
- curA = headB;
- curB = headA;
- k = countA - countB;
- }else {
- curA = headA;
- curB = headB;
- k = countB - countA;
- }
- while (k--) {
- curB = curB->next;
- }
- while (curB != NULL) {
- if (curA == curB) return curA;
- else {
- curA = curA->next;
- curB = curB->next;
- }
- }
- return NULL;
- }
- };
- class Solution {
- public:
- ListNode *detectCycle(ListNode *head) {
- ListNode *cur1 = head;
- ListNode *cur2 = head;
- while (cur2 != NULL && cur2->next != NULL) {
- cur1 = cur1->next;
- cur2 = cur2->next->next;
- if (cur1 == cur2) {
- ListNode *index1 = head;
- ListNode *index2 = cur1;
- while (index1 != index2) {
- index1 = index1->next;
- index2 = index2->next;
- }
- return index1;
- }
- }
- return NULL;
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。