LeetCode之Swap Nodes in Pairs

来源:互联网 发布:sql查询去重 编辑:程序博客网 时间:2024/05/29 14:40

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.

添加一个哨兵头节点减少编程的复杂性

/** * 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) {        ListNode *sentry = new ListNode(0); sentry->next = head;  ListNode *p, *q,*r; p = sentry; while (p&&p->next&&p->next->next){ q = p->next; r = p->next->next; q->next = r->next; r->next = q; p->next = r; p = q; } return sentry->next;    }};


0 0
原创粉丝点击