Swap Nodes in Pairs
2015-10-18 18:08
519 查看
Given a linked list, swap every two adjacent nodes and return its head.
Given
should return the list as
挑战
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
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: /** * @param head a ListNode * @return a ListNode */ ListNode* swapPairs(ListNode* head) { // Write your code here if (head == NULL || head->next == NULL) { return head; } ListNode *result = head->next; ListNode *next = head->next->next; result->next = head; head->next = next; ListNode *prev = head; ListNode *p = prev->next; ListNode *q = NULL; while (p != NULL && p->next != NULL) { q = p->next; next = q->next; q->next = p; p->next = next; prev->next = q; prev = p; p = next; } return result; } };
相关文章推荐
- lintcode 容易题:nth to Last Node In List 链表倒数第n个节点
- Node 笔记
- 在Node中使用indicative来验证model
- 1.nodejs权威指南--基础知识
- 关于NODE NPM 输入命令后没反应的问题
- node安装和基础
- nodejs综合
- LeetCode OJ:Delete Node in a Linked List(链表节点删除)
- node-mysql 在4.2.0的时候遇到的错误
- Nodejs-搭建Nodejs开发环境
- LeetCode解题报告--Reverse Nodes in k-Group
- nodejs生成多层目录和生成文件的通用方法
- Nodejs中间件Connect
- VB读取XML文件,selectNodes获取节点属性
- Node.js代码总结
- Reverse Nodes in k-Group
- nodejs中express入口文件及supervisor插件问题
- Swap Nodes in Pairs
- Remove Nth Node From End of List
- nodejs支持ssi实现include shtml页面