• Swap Nodes in Pairs


    考察指针的使用,但是写的过程中遇到一些问题,主要是写之前没想清需要用到哪些额外的指针。

    最后解决方案里有4个指针,result记录结果,tmp1和tmp2分别记录前后两个要交换的指针,next记录下面一组指针的第一个指针。解决办法比较笨,应该有简洁的方法,第二遍刷的时候细究吧。

        ListNode *swapPairs(ListNode *head) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(head == NULL || head->next == NULL)
                return head;
            ListNode *result = head->next;
            ListNode *tmp1 = head, *tmp2 = head->next;
            while(tmp2 != NULL){
                tmp1->next = tmp2->next;
                tmp2->next = tmp1;
                if(tmp1->next == NULL || tmp1->next->next == NULL)
                    tmp2 = NULL;
                else
                    tmp2 = tmp1->next->next;
                ListNode *next = tmp1->next;
                if(tmp2 != NULL)
                    tmp1->next = tmp2;
                tmp1 = next;
            }
            return result;
        }
  • 相关阅读:
    rpm的制作 spec文件写法
    RPM 打包技术与典型 SPEC 文件分析
    生成器
    闭包
    内置函数
    函数递归
    高阶函数
    匿名函数
    文件操作
    bytes
  • 原文地址:https://www.cnblogs.com/waruzhi/p/3344617.html
Copyright © 2020-2023  润新知