[LintCode]Swap Two Nodes in Linked List
来源:互联网 发布:html转xml python 编辑:程序博客网 时间:2024/06/05 11:11
http://www.lintcode.com/en/problem/swap-two-nodes-in-linked-list/#
调换两个指定值的节点,不存在则不换,每个节点值唯一
保证n1一定在n2之前,然后分两种情况调换:1、n1和n2相邻;2、不相邻
public class Solution { /** * @param head a ListNode * @oaram v1 an integer * @param v2 an integer * @return a new head of singly-linked list */ public ListNode swapNodes(ListNode head, int v1, int v2) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode node1Prev = null, node2Prev = null; ListNode cur = dummy; while (cur.next != null) { if (cur.next.val == v1) { node1Prev = cur; } else if (cur.next.val == v2) { node2Prev = cur; } cur = cur.next; } if (node1Prev == null || node2Prev == null) { return head; } if (node2Prev.next == node1Prev) { // make sure node1Prev is before node2Prev ListNode t = node1Prev; node1Prev = node2Prev; node2Prev = t; } ListNode node1 = node1Prev.next; ListNode node2 = node2Prev.next; ListNode node2Next = node2.next; if (node1Prev.next == node2Prev) { node1Prev.next = node2; node2.next = node1; node1.next = node2Next; } else { node1Prev.next = node2; node2.next = node1.next; node2Prev.next = node1; node1.next = node2Next; } return dummy.next; }}
0 0
- LintCode:Swap Two Nodes in Linked List
- [LintCode]Swap Two Nodes in Linked List
- Swap Two Nodes in Linked List
- #511 Swap Two Nodes in Linked List
- Swap Two Nodes in Linked List
- Swap Two Nodes in Linked List
- [LintCode] Swap Two Nodes in Linked List 交换链表中的两个结点
- 24. Swap Nodes in Pairs(Linked List)
- 511.Swap Two Nodes in Linked List-交换链表当中两个节点(中等题)
- 2.swap-two-nodes-in-linked-list(交换链表中的两个结点)
- [Lintcode]Swap Nodes in Pairs
- lintcode-Swap Nodes in Pairs -451
- Swap Nodes in Pairs(LintCode)
- LeetCode 24 Swap Nodes in Pairs(交换序列中的结点)(Linked List)
- lintcode:Route Between Two Nodes in Graph
- Posts Tagged 【List】Swap Nodes in Pairs
- [leetcode][list] Swap Nodes in Pairs
- 24. Swap Nodes in Pairs leetcode(list)
- 记人生第一天实习的前一天
- numpy 基础 —— np.linalg
- tomcat 内存溢出
- 百度地图的使用(2)
- mybatis中怎么使用like形成动态模糊查询,错误使用CONCAT拼接sql的看过来
- [LintCode]Swap Two Nodes in Linked List
- numpy中的数学与统计方法
- Android7.0成长之路---新特性Jack server
- Java内部类总结
- linux内核pid哈希表
- ConcurrentHashMap
- 算法训练 幂方分解
- 百度地图的使用(3)
- LeetCode 100. Same Tree