这篇文章主要讲解了“两两交换链表中的节点示例”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“两两交换链表中的节点示例”吧!
public ListNode swapPairs(ListNode head) {
ListNode curr = head;
while (curr != null) {
ListNode next = curr.next.next;
if (next != null) {
ListNode temp = curr;
curr = next;
curr.next.next = temp;
}
}
return curr;
}
public ListNode swapPairs(ListNode head) {
ListNode curr = head;
ListNode pre = head.next;
while (curr != null && pre != null) {
ListNode a = curr;
ListNode b = curr.next;
// 修改当前节点的指针指向前一个节点
a.next = pre;
pre.next = b;
curr = b.next;
pre = b;
}
return pre;
}
public ListNode swapPairs(ListNode head) {
// 创建一个空节点 默认指向头指针
ListNode pre = new ListNode(0);
pre.next = head;
// temp指向第一个node
ListNode temp = pre;
while(temp.next != null && temp.next.next !=null){
// 要交换的元素
ListNode a = temp.next;
// 要交换元素的下一个元素
ListNode b = temp.next.next;
//temp指向b
temp.next = b;
// a指向b.next
a.next = b.next;
// b指向a
b.next = a;
// 将交换完的a节点 变成起始节点
temp = a;
}
// ???? 这个返回值还是不理解 先跳过
return pre.next;
}
感谢各位的阅读,以上就是“两两交换链表中的节点示例”的内容了,经过本文的学习后,相信大家对两两交换链表中的节点示例这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!