• 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;
        }
  • 相关阅读:
    android system.img
    ab压力测试和CC预防
    ubuntu工具积累
    ViewManager
    PopupWindow
    singleton注意
    java byte[]生成
    java有符号无符号的转换
    C#垃圾回收Finalize 和Dispose的理解
    Silverlight 获取汉字拼音首字母
  • 原文地址:https://www.cnblogs.com/waruzhi/p/3344617.html
Copyright © 2020-2023  润新知