leetcode 24 兩兩交換鍊錶中的節點

2022-03-29 20:42:29 字數 404 閱讀 1713

24. 兩兩交換鍊錶中的節點

迭代的做法,不斷交換兩個鍊錶即可,有個小技巧是設定乙個pre來簡化操作,**如下:

listnode *pre = new listnode(0);

pre->next = head;

//表示處理過的list的尾,但不一定指向鍊錶尾,如果鍊錶節點數為雙數是指向鍊錶尾,如果為單數時指向鍊錶倒數第二個節點

listnode *newlisttail = pre;

while (newlisttail->next != null && newlisttail->next->next != null)

listnode *newhead = pre->next;

free(pre);

return newhead;;

}

LeetCode 24兩兩交換鍊錶的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 給定 1 2 3 4,你應該返回 2 1 4 3.class solution listnode next head.next head.next next.next 指向下...

leetcode24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.說明 你的演算法只能使用常數的額外空間。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。注意while裡tmp1和tmp2已經交換了,所以node tmp1 definit...

leetcode 24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.複製 說明 listnode definition for singly linked list.type listnode struct func head listnode list...