您好,登錄后才能下訂單哦!
這篇文章主要講解了“兩兩交換鏈表中的節點示例”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“兩兩交換鏈表中的節點示例”吧!
自己解題第一次 (超時了)
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; }
感謝各位的閱讀,以上就是“兩兩交換鏈表中的節點示例”的內容了,經過本文的學習后,相信大家對兩兩交換鏈表中的節點示例這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。