Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a841cfd

Browse files
raof01azl397985856
authored andcommitted
odd-even-linked-list: add C++ implementation (azl397985856#50)
1 parent d66730b commit a841cfd

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

‎problems/328.odd-even-linked-list.md‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ The first node is considered odd, the second node even and so on ...
3636
- 循环的结束条件设置为 `odd && odd.next && even && even.next`, 不应该是`odd && even`, 否则需要记录一下奇数节点的最后一个节点,复杂了操作
3737

3838
## 代码
39+
40+
* 语言支持:JS,C++
41+
42+
JavaScript Code:
3943
```js
4044
/*
4145
* @lc app=leetcode id=328 lang=javascript
@@ -122,3 +126,30 @@ var oddEvenList = function(head) {
122126
};
123127
```
124128

129+
C++ Code:
130+
```C++
131+
/**
132+
* Definition for singly-linked list.
133+
* struct ListNode {
134+
* int val;
135+
* ListNode *next;
136+
* ListNode(int x) : val(x), next(NULL) {}
137+
* };
138+
*/
139+
class Solution {
140+
public:
141+
ListNode* oddEvenList(ListNode* head) {
142+
if (head == nullptr) return head;
143+
auto odd = head, evenHead = head->next, even = head->next;
144+
// 因为"每次循环之后依然保持odd在even之前",循环条件可以只判断even和even->next是否为空,修改odd和even的指向的操作也可以简化
145+
while (even != nullptr && even->next != nullptr) {
146+
odd->next = even->next;
147+
odd = odd->next;
148+
even->next = odd->next;
149+
even = even->next;
150+
}
151+
odd->next = evenHead;
152+
return head;
153+
}
154+
};
155+
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /