题目
给你一个链表以及两个权值v1
和v2
,交换链表中权值为v1
和v2
的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。
注意事项
你需要交换两个节点而不是改变节点的权值
样例
给出链表 1->2->3->4->null
,以及 v1
= 2
, v2
= 4
返回结果 1->4->3->2->null
。
解题
交换值的方式
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ 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) { // Write your code here ListNode p1 = head; while(p1!=null){ if(p1.val==v1){ p1.val = v2; } else if(p1.val==v2){ p1.val = v1; } p1 = p1.next; } return head; } }
提交错误