【leetcode每日一题】24.Swap Nodes in Pairs
2015-08-31 22:10
507 查看
题目:
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
解析:定义三个节点temp、first和second,temp指向上一节点,first指向当前节点,second指向下一节点。让temp指向second,first指向second的下一节点,second指向first。然后依次遍历整个链表即可。代码如下:
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.
解析:定义三个节点temp、first和second,temp指向上一节点,first指向当前节点,second指向下一节点。让temp指向second,first指向second的下一节点,second指向first。然后依次遍历整个链表即可。代码如下:
/** * 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==NULL||head->next==NULL) return head; ListNode *first=head; ListNode *second=first->next; ListNode *temp=first; head=second; while(first!=NULL&&second!=NULL) { temp->next=second; first->next=second->next; second->next=first; temp=first; first=first->next; if(first!=NULL) second=first->next; } return head; } };
相关文章推荐
- [leetcode] 222 Count Complete Tree Nodes
- leetcode 237: Delete Node in a Linked List
- How to Install Node.js
- ClippingNode的使用之为节点添加动态光效
- hadoop集群配置datanode无法启动的原因
- Node.js游戏框架
- Aspose.words编程指南之DOM树结构初识,Node类继承关系及说明
- hadoop2.X如何将namenode与SecondaryNameNode分开配置
- LeetCode_Merge k Sorted Lists
- node.js中util模块介绍
- Node.js和testacular的安装与配置
- Remove Nth Node From End of List
- Node.js实现RESTful api,express or koa?
- Node.js 开发指南笔记
- *Count Complete Tree Nodes
- **Lowest Common Ancestor of Two Nodes in a Binary Tree
- 安装supervisor调试nodejs
- 安装node-inspector来调试node
- Node.js socketio一对一客服系统
- 深入理解磁盘文件系统之inode