一、题目——Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given1->2->3->4, you should return the list as2->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.
二、分析
大家好,我又来了。这次还是链表题。根据题目的意思,就是每对节点两两交换。注意是交换节点,而不是交换节点的值。那么交换两个节点时,我们得让第一个节点的前一个节点的next指向第二个节点,第二个节点的下一个节点的next指向第一个节点。然后让第二个节点的next指向第一个节点。临界状态,即第一个节点是头结点。那我们就得相应做些特殊的处理,让第二个节点成为头结点。思路如上,上代码。
网友评论