24.LeetCode Swap Nodes in Pairs(easy)[单链表]
2016-03-29 21:55
513 查看
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.
解题思路:要求是不能申请其他的空间,并且不能直接通过改值来完成相邻节点交换。因此只能通过两个指针p和q来不停保存当前相邻节点交换之后的状态。
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.
解题思路:要求是不能申请其他的空间,并且不能直接通过改值来完成相邻节点交换。因此只能通过两个指针p和q来不停保存当前相邻节点交换之后的状态。
/** * 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* nhead = head->next; ListNode* p = head; ListNode* q = head; while(p != NULL && p->next != NULL) { ListNode* temp = p->next->next; ListNode* temp1 = p->next; p->next->next = p; q->next = temp1; p->next = temp; q = p; p = temp; } return nhead; } };
相关文章推荐
- leetcode之delete Node in a Linked List
- Ubuntu下安装最新版Node.js
- 关于npm安装node.js第三方依赖的问题
- [UE4][Custom Animation Graph Node]Evaluate Pose by Curve
- nodejs篇(一)
- nodeJs爬虫获取数据简单实现代码
- HashMap学习
- leetcode 题解 || Swap Nodes in Pairs 问题
- node.js 入门实例【转】
- Hadoop获得集群NameNode和DataNode状态
- node.js学习笔记(4)--使用Express完成简单的登陆
- node.js的REPL运行环境中的基本命令汇总
- Node.js初体验
- Node.js入门学习(概述)
- 新手如何快速入门node.js
- hadoop Name node is in safe mode
- Namenode HA原理详解(脑裂)
- Remove Node in Binary Search Tree
- JavaScritpt的DOM初探之Node(一)
- 找到个学node的好地方,极客学院