題入口:24. 兩兩交換鏈表中的節點 - 力扣(LeetCode) (leetcode-cn.com)
思路:
這是一個經典的鏈表題,我個人覺得95%的鏈表題構造一個頭節點是肯定不會錯的,這個方法對于鏈表的刪除效果很好,具體實現的思路也很簡單,因為是兩兩交換節點,所以我們需要一個變量temp來記住兩兩交換的節點的后一個節點,前面的節點的交換完成之后,將變量p走到temp的前一個節點,也就是head,循環的條件就是必須要有2個節點,這樣子才能交換
class Solution { public ListNode swapPairs(ListNode head) { ListNode pre = new ListNode(); pre.next = head; ListNode p = pre; while(p.next != null && p.next.next != null){ ListNode temp = head.next.next; p.next = head.next; head.next.next = head; head.next = temp; p = head; head = head.next; } return pre.next; } }
浙公網安備 33010602011771號