LeetCode24. 两两交换链表中的节点
输入:head = [1,2,3,4] 输出:[2,1,4,3]
遍历思路:先定义一个节点0,让0->head,让1指向next的next,也就是3,因为目的是给1和2做交换,让0指向2,2指向1,这样就完成1和2的交换了,然后让temp跳过2指向1,继续迭代,最后返回0的next
// 遍历方式 var swapPairs = function (head) { let dummy = new ListNode(0); dummy.next = head; let temp = dummy; while(temp.next !== null && temp.next.next!==null) { let node1 = temp.next; //1 let node2 = temp.next.next; //2 node1.next = node2.next; temp.next = node2; temp.next.next = node1; temp = temp.next.next; // console.log(temp,node1); } return dummy.next; };
递归方式
// 递归方式 var swapPairs = function (head) { if(head===null || head.next === null) { return head; } let temp = head.next; head.next = swapPairs(temp.next) temp.next = head; return temp; }
浙公网安备 33010602011771号