【24. 两两交换链表中的节点】C实现(双指针)

This commit is contained in:
fixme
2021-08-03 22:10:15 +08:00
parent 2dcba506ae
commit 26a07b9bf1

View File

@ -86,6 +86,34 @@ public:
## 其他语言版本 ## 其他语言版本
C:
```
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head){
//使用双指针避免使用中间变量
typedef struct ListNode ListNode;
ListNode *fakehead = (ListNode *)malloc(sizeof(ListNode));
fakehead->next = head;
ListNode* right = fakehead->next;
ListNode* left = fakehead;
while(left && right && right->next ){
left->next = right->next;
right->next = left->next->next;
left->next->next = right;
left = right;
right = left->next;
}
return fakehead->next;
}
```
Java Java