• LeetCode Swap Nodes in Pairs


    class Solution {
    public:
        ListNode *swapPairs(ListNode *head) {
            ListNode *a = NULL;
            ListNode *b = NULL;
            ListNode *tail = NULL;
            ListNode *nhead = NULL;
            a = head;
            while (a != NULL && (b = a->next) != NULL) {
                a->next = b->next;
                b->next = a;
                if (tail != NULL) {
                    tail->next = b;
                } else {
                    nhead = b;
                }
                tail = a;
                a = a->next;
            }
            if (nhead == NULL) {
                nhead = head;
            }
            return nhead;
        }
    };

    准备六级,水一发

    第二轮:

    Given a linked list, swap every two adjacent nodes and return its head.

    For example,
    Given 1->2->3->4, you should return the list as 2->1->4->3.

    Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

    class Solution {
    public:
        ListNode *swapPairs(ListNode *head) {
            if (head == NULL || head->next == NULL) {
                return head;
            } 
            ListNode holder(0);
            ListNode* prev = &holder;
            ListNode* cur = head;
            
            while (cur != NULL) {
                ListNode* next = cur->next;
                if (next == NULL) {
                    break;
                }
                head = next->next;
                next->next = cur;
                cur->next = head;
                prev->next = next;
                prev = cur;
                cur = cur->next;
            }
            return holder.next;
        }
    };
  • 相关阅读:
    常用基础OC 集合
    字典的常用基本用法
    常用基础字符串常用基础实例
    软件测试:测试工程师的素质!
    软件测试:心得简介!
    java 汽车销售收入系统
    收银系统
    流程控制、循环结构
    java 聊天猜拳机器人
    设计模式(六)---建造模式
  • 原文地址:https://www.cnblogs.com/lailailai/p/3766541.html
Copyright © 2020-2023  润新知