diff options
Diffstat (limited to 'delete_middle_node.cpp')
-rw-r--r-- | delete_middle_node.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/delete_middle_node.cpp b/delete_middle_node.cpp new file mode 100644 index 0000000..1493046 --- /dev/null +++ b/delete_middle_node.cpp @@ -0,0 +1,16 @@ +#include "leetcode.h" + +class Solution { +public: + ListNode *deleteMiddle(ListNode *head) { + if (head->next == nullptr) + return nullptr; + auto slow = head, fast = head->next->next; + while (fast != nullptr && fast->next != nullptr) { + fast = fast->next->next; + slow = slow->next; + } + slow->next = slow->next->next; + return head; + } +}; |