leetcode 24 Swap Nodes in Pairs

来源:互联网 发布:知乎 朱炫 西游记 编辑:程序博客网 时间:2024/06/16 18:38
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* swapPairs(ListNode* head) {        if(!head)        return nullptr;        ListNode headd(-1);        headd.next = head;        ListNode *p,*n1,*n2;        p = &headd;        while(p && p->next && p->next->next)        {            n1 = p->next;            n2 = p->next->next;            p->next = n2;            n1->next = n2->next;            n2->next = n1;            p = p->next->next;        }        return headd.next;    }};这个题是为了交换相邻两个节点的数值,最后返回头节点,但是开始读题的时候在想如果是奇数的节点数怎么办。。然后发现如果是奇数最后一个节点就不用管了。在编写的时候while循环里面写成了while(p->next->next&&p->next&&p)疯狂报错。因为有种情况p已经是空了,所以p->next就一定会报错,把顺序放正就好了。
0 0
原创粉丝点击