[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql)Github: https://github.com/illuz/leetcode

024. Swap Nodes in Pairs (Medium)链接:

题目:https://oj.leetcode.com/problems/swap-nodes-in-pairs/代码(github):https://github.com/illuz/leetcode

题意:

把一个链表中的每一对节点对换(不能只换值)。

分析:

直接模拟即可。开个前节点来做会比较方便。用 Python 的异常处理和赋值会很方便。

代码:

C++:

class Solution {public:ListNode *swapPairs(ListNode *head) {ListNode *newHead = new ListNode(0);newHead->next = head;ListNode *preNode = newHead, *curNode = head;int cnt = 1;while (curNode != NULL && curNode->next != NULL) {// swap curNode and curNode->nextpreNode->next = curNode->next;curNode->next = preNode->next->next;preNode->next->next = curNode;// go over two nodespreNode = curNode;curNode = curNode->next;}head = newHead->next;delete newHead;return head;}};

Python:

class Solution:# @param a ListNode# @return a ListNodedef swapPairs(self, head):dummy = ListNode(0)dummy.next = headcur = dummytry:while True:pre, cur, nxt = cur, cur.next, cur.next.next# change the position of cur and nxtpre.next, cur.next, nxt.next = nxt, nxt.next, cur# now cur is in the third placeexcept:return dummy.next

,想要成功,就一定要和成功的人在一起,不然反之

[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)

相关文章:

你感兴趣的文章:

标签云: