热门IT资讯网

leetCode 24. Swap Nodes in Pairs 链表

发表于:2024-11-29 作者:热门IT资讯网编辑
编辑最后更新 2024年11月29日,24. Swap Nodes in PairsGiven a linked list, swap every two adjacent nodes and return its head.For ex

24. Swap Nodes in Pairs

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* left,*right,*pre,*p;        pre = NULL;//记录每两个节点前面的那个节点        p = head;        while(p !=NULL && p->next != NULL)        {            left = p;            right = p->next;                        left->next = right->next;            right->next = left;                        if(pre != NULL)            {                pre->next = right;            }            else//链表的头两个节点交换位置            {                head = right;            }            pre = left;            p = left->next;        }        return head;    }};

2016-08-12 23:51:00

0