{"id":76659,"date":"2024-09-13T22:05:37","date_gmt":"2024-09-13T18:35:37","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/"},"modified":"2024-09-13T22:05:37","modified_gmt":"2024-09-13T18:35:37","slug":"linked-list-manipulation-coding-interview-pattern-15f1","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/","title":{"rendered":"\u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc\u060c \u0627\u0644\u06af\u0648\u06cc \u0645\u0635\u0627\u062d\u0628\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<\/p>\n<p>\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u062e\u0637\u06cc \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 \u06af\u0631\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06af\u0631\u0647 \u062d\u0627\u0648\u06cc \u062f\u0627\u062f\u0647 \u0648 \u06cc\u06a9 \u0645\u0631\u062c\u0639 (\u06cc\u0627 \u067e\u06cc\u0648\u0646\u062f) \u0628\u0647 \u06af\u0631\u0647 \u0628\u0639\u062f\u06cc \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0633\u062a. \u0628\u0631\u062e\u0644\u0627\u0641 \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627\u060c \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0648\u06cc\u0627 \u0647\u0633\u062a\u0646\u062f \u0648 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u0627 \u062d\u0630\u0641 \u0639\u0646\u0627\u0635\u0631 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u0627\u0628\u062c\u0627\u06cc\u06cc \u0639\u0646\u0627\u0635\u0631 \u062f\u06cc\u06af\u0631\u060c \u0628\u0632\u0631\u06af \u06cc\u0627 \u06a9\u0648\u0686\u06a9 \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0644\u06cc\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u067e\u0634\u062a\u0647\u200c\u0647\u0627\u060c \u0635\u0641\u200c\u0647\u0627 \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u06a9\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u0622\u0646\u200c\u0647\u0627 \u0627\u063a\u0644\u0628 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u0641\u06cc\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633<\/p>\n<p>This question is part of Leetcode problems, question no. 206.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Reverse Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* reverseList(ListNode* head) {<br \/>\n        ListNode* prev = nullptr;  \/\/ Initialize previous pointer as nullptr<br \/>\n        ListNode* current = head;  \/\/ Initialize current pointer to head<\/p>\n<p>        while (current != nullptr) {<br \/>\n            ListNode* nextNode = current-&gt;next;  \/\/ Store next node<br \/>\n            current-&gt;next = prev;  \/\/ Reverse the current node&#8217;s pointer<br \/>\n            prev = current;  \/\/ Move prev pointer one step forward<br \/>\n            current = nextNode;  \/\/ Move current pointer one step forward<br \/>\n        }<\/p>\n<p>        return prev;  \/\/ Return the new head of the reversed list<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633 II<\/p>\n<p>This question is part of Leetcode problems, question no. 92.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Reverse Linked List II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* reverseBetween(ListNode* head, int left, int right) {<br \/>\n        if (!head || left == right) return head;<\/p>\n<p>        ListNode* dummy = new ListNode(0);  \/\/ Dummy node to simplify edge cases<br \/>\n        dummy-&gt;next = head;<br \/>\n        ListNode* prev = dummy;<\/p>\n<p>        \/\/ Move `prev` pointer to just before the `left` position<br \/>\n        for (int i = 1; i  left; ++i) {<br \/>\n            prev = prev-&gt;next;<br \/>\n        }<\/p>\n<p>        ListNode* current = prev-&gt;next;  \/\/ `current` starts at `left`<br \/>\n        ListNode* nextNode;<\/p>\n<p>        \/\/ Reverse the sublist between `left` and `right`<br \/>\n        for (int i = 0; i  right &#8211; left; ++i) {<br \/>\n            nextNode = current-&gt;next;<br \/>\n            current-&gt;next = nextNode-&gt;next;<br \/>\n            nextNode-&gt;next = prev-&gt;next;<br \/>\n            prev-&gt;next = nextNode;<br \/>\n        }<\/p>\n<p>        return dummy-&gt;next;  \/\/ Return the updated list starting from the original head<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u06af\u0631\u0647 \u0646\u0647\u0645 \u0631\u0627 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0644\u06cc\u0633\u062a \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/p>\n<p>This question is part of Leetcode problems, question no. 19.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062d\u0630\u0641 \u06af\u0631\u0647 \u0646\u0647\u0645 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0644\u06cc\u0633\u062a&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* removeNthFromEnd(ListNode* head, int n) {<br \/>\n        ListNode* dummy = new ListNode(0);<br \/>\n        dummy-&gt;next = head;<br \/>\n        ListNode* first = dummy;<br \/>\n        ListNode* second = dummy;<\/p>\n<p>        for (int i = 1; i  n + 1; ++i) {<br \/>\n            first = first-&gt;next;<br \/>\n        }<\/p>\n<p>        while (first != nullptr) {<br \/>\n            first = first-&gt;next;<br \/>\n            second = second-&gt;next;<br \/>\n        }<\/p>\n<p>        second-&gt;next = second-&gt;next-&gt;next;<br \/>\n        return dummy-&gt;next;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0686\u0631\u062e\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc<\/p>\n<p>This question is part of Leetcode problems, question no. 141.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 \u0631\u0627\u0647 \u062d\u0644 \u0628\u0631\u0627\u06cc \u0645\u0633\u0626\u0644\u0647 &#8220;\u0686\u0631\u062e\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    bool hasCycle(ListNode *head) {<br \/>\n        if (!head || !head-&gt;next) return false;<\/p>\n<p>        ListNode* slow = head;<br \/>\n        ListNode* fast = head-&gt;next;<\/p>\n<p>        while (slow != fast) {<br \/>\n            if (!fast || !fast-&gt;next) return false;<br \/>\n            slow = slow-&gt;next;<br \/>\n            fast = fast-&gt;next-&gt;next;<br \/>\n        }<\/p>\n<p>        return true;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0686\u0631\u062e\u0647 \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc II<\/p>\n<p>This question is part of Leetcode problems, question no. 142.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;List Linked Cycle II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode *detectCycle(ListNode *head) {<br \/>\n        if (!head || !head-&gt;next) return nullptr;<\/p>\n<p>        ListNode* slow = head;<br \/>\n        ListNode* fast = head;<\/p>\n<p>        \/\/ Phase 1: Detect if there is a cycle<br \/>\n        while (fast &amp;&amp; fast-&gt;next) {<br \/>\n            slow = slow-&gt;next;<br \/>\n            fast = fast-&gt;next-&gt;next;<br \/>\n            if (slow == fast) {<br \/>\n                break;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        \/\/ No cycle detected<br \/>\n        if (fast == nullptr || fast-&gt;next == nullptr) {<br \/>\n            return nullptr;<br \/>\n        }<\/p>\n<p>        \/\/ Phase 2: Find the start node of the cycle<br \/>\n        slow = head;<br \/>\n        while (slow != fast) {<br \/>\n            slow = slow-&gt;next;<br \/>\n            fast = fast-&gt;next;<br \/>\n        }<\/p>\n<p>        return slow; \/\/ Both pointers meet at the start of the cycle<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u062a\u0642\u0627\u0637\u0639 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628\u0637<\/p>\n<p>This question is part of Leetcode problems, question no. 160.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062a\u0642\u0627\u0637\u0639 \u062f\u0648 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {<br \/>\n        if (!headA || !headB) return nullptr;<\/p>\n<p>        ListNode* ptrA = headA;<br \/>\n        ListNode* ptrB = headB;<\/p>\n<p>        \/\/ Traverse both lists. When a pointer reaches the end, redirect it to the head of the other list.<br \/>\n        \/\/ If they intersect, they will meet at the intersection node. If not, they will end up at the end of the lists together.<br \/>\n        while (ptrA != ptrB) {<br \/>\n            ptrA = ptrA ? ptrA-&gt;next : headB;<br \/>\n            ptrB = ptrB ? ptrB-&gt;next : headA;<br \/>\n        }<\/p>\n<p>        return ptrA; \/\/ Either the intersection node or nullptr if no intersection<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u062f\u0648 \u0639\u062f\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>This question is part of Leetcode problems, question no. 2.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u0648 \u0639\u062f\u062f&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {<br \/>\n        ListNode* dummy = new ListNode(0);<br \/>\n        ListNode* current = dummy;<br \/>\n        int carry = 0;<\/p>\n<p>        while (l1 || l2 || carry) {<br \/>\n            int sum = carry;<\/p>\n<p>            if (l1) {<br \/>\n                sum += l1-&gt;val;<br \/>\n                l1 = l1-&gt;next;<br \/>\n            }<\/p>\n<p>            if (l2) {<br \/>\n                sum += l2-&gt;val;<br \/>\n                l2 = l2-&gt;next;<br \/>\n            }<\/p>\n<p>            carry = sum \/ 10;<br \/>\n            current-&gt;next = new ListNode(sum % 10);<br \/>\n            current = current-&gt;next;<br \/>\n        }<\/p>\n<p>        return dummy-&gt;next;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0648 \u0639\u062f\u062f II<\/p>\n<p>This question is part of Leetcode problems, question no. 445.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0633\u0626\u0644\u0647 &#8220;Add Two Numbers II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {<br \/>\n        stackint&gt; s1, s2;<\/p>\n<p>        \/\/ Push all values of l1 to stack s1<br \/>\n        while (l1) {<br \/>\n            s1.push(l1-&gt;val);<br \/>\n            l1 = l1-&gt;next;<br \/>\n        }<\/p>\n<p>        \/\/ Push all values of l2 to stack s2<br \/>\n        while (l2) {<br \/>\n            s2.push(l2-&gt;val);<br \/>\n            l2 = l2-&gt;next;<br \/>\n        }<\/p>\n<p>        ListNode* prev = nullptr;<br \/>\n        int carry = 0;<\/p>\n<p>        \/\/ Process the stacks and build the result list<br \/>\n        while (!s1.empty() || !s2.empty() || carry) {<br \/>\n            int sum = carry;<\/p>\n<p>            if (!s1.empty()) {<br \/>\n                sum += s1.top();<br \/>\n                s1.pop();<br \/>\n            }<\/p>\n<p>            if (!s2.empty()) {<br \/>\n                sum += s2.top();<br \/>\n                s2.pop();<br \/>\n            }<\/p>\n<p>            carry = sum \/ 10;<br \/>\n            ListNode* node = new ListNode(sum % 10);<br \/>\n            node-&gt;next = prev;<br \/>\n            prev = node;<br \/>\n        }<\/p>\n<p>        return prev;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u06af\u0631\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u0641\u062a \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f<\/p>\n<p>This question is part of Leetcode problems, question no. 24.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062a\u0628\u0627\u062f\u0644 \u06af\u0631\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u0641\u062a&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* swapPairs(ListNode* head) {<br \/>\n        ListNode* dummy = new ListNode(0);<br \/>\n        dummy-&gt;next = head;<br \/>\n        ListNode* prev = dummy;<\/p>\n<p>        while (prev-&gt;next &amp;&amp; prev-&gt;next-&gt;next) {<br \/>\n            ListNode* first = prev-&gt;next;<br \/>\n            ListNode* second = prev-&gt;next-&gt;next;<\/p>\n<p>            \/\/ Swap the nodes<br \/>\n            first-&gt;next = second-&gt;next;<br \/>\n            second-&gt;next = first;<br \/>\n            prev-&gt;next = second;<\/p>\n<p>            \/\/ Move prev pointer two nodes ahead<br \/>\n            prev = first;<br \/>\n        }<\/p>\n<p>        return dummy-&gt;next;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0639\u0646\u0627\u0635\u0631 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/p>\n<p>This question is part of Leetcode problems, question no. 203.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Remove Linked List Elements&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* removeElements(ListNode* head, int val) {<br \/>\n        \/\/ Remove leading nodes with the value &#8216;val&#8217;<br \/>\n        while (head != nullptr &amp;&amp; head-&gt;val == val) {<br \/>\n            head = head-&gt;next;<br \/>\n        }<\/p>\n<p>        \/\/ If the list becomes empty, return nullptr<br \/>\n        if (head == nullptr) return head;<\/p>\n<p>        \/\/ Initialize current pointer<br \/>\n        ListNode* current = head;<\/p>\n<p>        \/\/ Traverse the list and remove nodes with the value &#8216;val&#8217;<br \/>\n        while (current-&gt;next != nullptr) {<br \/>\n            if (current-&gt;next-&gt;val == val) {<br \/>\n                current-&gt;next = current-&gt;next-&gt;next;<br \/>\n            } else {<br \/>\n                current = current-&gt;next;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        return head;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u062f\u063a\u0627\u0645 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628 \u0634\u062f\u0647<\/p>\n<p>This question is part of Leetcode problems, question no. 21.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Merge Two Sorted List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {<br \/>\n        \/\/ Create a dummy node to simplify the merging process<br \/>\n        ListNode* dummy = new ListNode(0);<br \/>\n        ListNode* current = dummy;<\/p>\n<p>        \/\/ Merge the two lists while both have remaining nodes<br \/>\n        while (l1 != nullptr &amp;&amp; l2 != nullptr) {<br \/>\n            if (l1-&gt;val  l2-&gt;val) {<br \/>\n                current-&gt;next = l1;<br \/>\n                l1 = l1-&gt;next;<br \/>\n            } else {<br \/>\n                current-&gt;next = l2;<br \/>\n                l2 = l2-&gt;next;<br \/>\n            }<br \/>\n            current = current-&gt;next;<br \/>\n        }<\/p>\n<p>        \/\/ Append any remaining nodes from either list<br \/>\n        if (l1 != nullptr) {<br \/>\n            current-&gt;next = l1;<br \/>\n        } else {<br \/>\n            current-&gt;next = l2;<br \/>\n        }<\/p>\n<p>        \/\/ Return the merged list starting from dummy-&gt;next<br \/>\n        return dummy-&gt;next;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u062e\u0648\u0631\u062f\u0647 \u0632\u0648\u062c \u0632\u0648\u062c<\/p>\n<p>This question is part of Leetcode problems, question no. 328.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Odd Even Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* oddEvenList(ListNode* head) {<br \/>\n        if (head == nullptr) return nullptr;<\/p>\n<p>        \/\/ Initialize pointers for odd and even nodes<br \/>\n        ListNode* odd = head;<br \/>\n        ListNode* even = head-&gt;next;<br \/>\n        ListNode* evenHead = even; \/\/ Keep track of the start of even list<\/p>\n<p>        \/\/ Iterate through the list to rearrange the nodes<br \/>\n        while (even != nullptr &amp;&amp; even-&gt;next != nullptr) {<br \/>\n            odd-&gt;next = even-&gt;next; \/\/ Link the odd nodes<br \/>\n            odd = odd-&gt;next;        \/\/ Move to the next odd node<br \/>\n            even-&gt;next = odd-&gt;next; \/\/ Link the even nodes<br \/>\n            even = even-&gt;next;      \/\/ Move to the next even node<br \/>\n        }<\/p>\n<p>        \/\/ Attach the even list at the end of the odd list<br \/>\n        odd-&gt;next = evenHead;<\/p>\n<p>        return head;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0627\u0644\u06cc\u0646\u062f\u0631\u0648\u0645<\/p>\n<p>This question is part of Leetcode problems, question no. 234.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Palindrome Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    bool isPalindrome(ListNode* head) {<br \/>\n        if (!head || !head-&gt;next) return true;<\/p>\n<p>        \/\/ Step 1: Find the middle of the linked list using the fast and slow pointer technique<br \/>\n        ListNode* slow = head;<br \/>\n        ListNode* fast = head;<\/p>\n<p>        while (fast &amp;&amp; fast-&gt;next) {<br \/>\n            slow = slow-&gt;next;<br \/>\n            fast = fast-&gt;next-&gt;next;<br \/>\n        }<\/p>\n<p>        \/\/ Step 2: Reverse the second half of the list<br \/>\n        ListNode* prev = nullptr;<br \/>\n        while (slow) {<br \/>\n            ListNode* nextNode = slow-&gt;next;<br \/>\n            slow-&gt;next = prev;<br \/>\n            prev = slow;<br \/>\n            slow = nextNode;<br \/>\n        }<\/p>\n<p>        \/\/ Step 3: Compare the first half and the reversed second half<br \/>\n        ListNode* firstHalf = head;<br \/>\n        ListNode* secondHalf = prev;<\/p>\n<p>        while (secondHalf) {<br \/>\n            if (firstHalf-&gt;val != secondHalf-&gt;val) {<br \/>\n                return false;<br \/>\n            }<br \/>\n            firstHalf = firstHalf-&gt;next;<br \/>\n            secondHalf = secondHalf-&gt;next;<br \/>\n        }<\/p>\n<p>        return true;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0648\u0633\u0637 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<\/p>\n<p>This question is part of Leetcode problems, question no. 876.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Middle of the Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* middleNode(ListNode* head) {<br \/>\n        ListNode* slow = head;<br \/>\n        ListNode* fast = head;<\/p>\n<p>        \/\/ Move slow by one step and fast by two steps<br \/>\n        \/\/ When fast reaches the end, slow will be at the middle<br \/>\n        while (fast &amp;&amp; fast-&gt;next) {<br \/>\n            slow = slow-&gt;next;<br \/>\n            fast = fast-&gt;next-&gt;next;<br \/>\n        }<\/p>\n<p>        return slow;<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<div data-article-id=\"1999424\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%B4%D8%AF%D9%87\" >\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D9%85%D8%B9%DA%A9%D9%88%D8%B3\" >\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D9%85%D8%B9%DA%A9%D9%88%D8%B3_II\" >\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633 II<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%DA%AF%D8%B1%D9%87_%D9%86%D9%87%D9%85_%D8%B1%D8%A7_%D8%A7%D8%B2_%D8%A7%D9%86%D8%AA%D9%87%D8%A7%DB%8C_%D9%84%DB%8C%D8%B3%D8%AA_%D8%AD%D8%B0%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\" >\u06af\u0631\u0647 \u0646\u0647\u0645 \u0631\u0627 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0644\u06cc\u0633\u062a \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%DA%86%D8%B1%D8%AE%D9%87_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C\" >\u0686\u0631\u062e\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%DA%86%D8%B1%D8%AE%D9%87_%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_II\" >\u0686\u0631\u062e\u0647 \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc II<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D8%AA%D9%82%D8%A7%D8%B7%D8%B9_%D8%AF%D9%88_%D9%84%DB%8C%D8%B3%D8%AA_%D9%85%D8%B1%D8%AA%D8%A8%D8%B7\" >\u062a\u0642\u0627\u0637\u0639 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628\u0637<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D8%AF%D9%88_%D8%B9%D8%AF%D8%AF_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u062f\u0648 \u0639\u062f\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D9%88_%D8%B9%D8%AF%D8%AF_II\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0648 \u0639\u062f\u062f II<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%DA%AF%D8%B1%D9%87_%D9%87%D8%A7_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B5%D9%88%D8%B1%D8%AA_%D8%AC%D9%81%D8%AA_%D8%B9%D9%88%D8%B6_%DA%A9%D9%86%DB%8C%D8%AF\" >\u06af\u0631\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u0641\u062a \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D8%B9%D9%86%D8%A7%D8%B5%D8%B1_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_%D8%B1%D8%A7_%D8%AD%D8%B0%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0639\u0646\u0627\u0635\u0631 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D8%A7%D8%AF%D8%BA%D8%A7%D9%85_%D8%AF%D9%88_%D9%84%DB%8C%D8%B3%D8%AA_%D9%85%D8%B1%D8%AA%D8%A8_%D8%B4%D8%AF%D9%87\" >\u0627\u062f\u063a\u0627\u0645 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628 \u0634\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%AE%D9%88%D8%B1%D8%AF%D9%87_%D8%B2%D9%88%D8%AC_%D8%B2%D9%88%D8%AC\" >\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u062e\u0648\u0631\u062f\u0647 \u0632\u0648\u062c \u0632\u0648\u062c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_%D9%BE%D8%A7%D9%84%DB%8C%D9%86%D8%AF%D8%B1%D9%88%D9%85\" >\u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0627\u0644\u06cc\u0646\u062f\u0631\u0648\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/linked-list-manipulation-coding-interview-pattern-15f1\/#%D9%88%D8%B3%D8%B7_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%B4%D8%AF%D9%87\" >\u0648\u0633\u0637 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u062e\u0637\u06cc \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 \u06af\u0631\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06af\u0631\u0647 \u062d\u0627\u0648\u06cc \u062f\u0627\u062f\u0647 \u0648 \u06cc\u06a9 \u0645\u0631\u062c\u0639 (\u06cc\u0627 \u067e\u06cc\u0648\u0646\u062f) \u0628\u0647 \u06af\u0631\u0647 \u0628\u0639\u062f\u06cc \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0633\u062a. \u0628\u0631\u062e\u0644\u0627\u0641 \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627\u060c \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0648\u06cc\u0627 \u0647\u0633\u062a\u0646\u062f \u0648 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u0627 \u062d\u0630\u0641 \u0639\u0646\u0627\u0635\u0631 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u0627\u0628\u062c\u0627\u06cc\u06cc \u0639\u0646\u0627\u0635\u0631 \u062f\u06cc\u06af\u0631\u060c \u0628\u0632\u0631\u06af \u06cc\u0627 \u06a9\u0648\u0686\u06a9 \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0644\u06cc\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u067e\u0634\u062a\u0647\u200c\u0647\u0627\u060c \u0635\u0641\u200c\u0647\u0627 \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u06a9\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u0622\u0646\u200c\u0647\u0627 \u0627\u063a\u0644\u0628 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u0641\u06cc\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D9%85%D8%B9%DA%A9%D9%88%D8%B3\"><\/span>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 206.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Reverse Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">reverseList<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Initialize previous pointer as nullptr<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Initialize current pointer to head<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">current<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">nextNode<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Store next node<\/span>\n            <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Reverse the current node's pointer<\/span>\n            <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Move prev pointer one step forward<\/span>\n            <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">nextNode<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Move current pointer one step forward<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Return the new head of the reversed list<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D9%85%D8%B9%DA%A9%D9%88%D8%B3_II\"><\/span>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u06a9\u0648\u0633 II<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 92.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Reverse Linked List II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">reverseBetween<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">left<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">right<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">head<\/span> <span class=\"o\">||<\/span> <span class=\"n\">left<\/span> <span class=\"o\">==<\/span> <span class=\"n\">right<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">dummy<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Dummy node to simplify edge cases<\/span>\n        <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Move `prev` pointer to just before the `left` position<\/span>\n        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\"> <span class=\"n\">left<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ `current` starts at `left`<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">nextNode<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Reverse the sublist between `left` and `right`<\/span>\n        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\"> <span class=\"n\">right<\/span> <span class=\"o\">-<\/span> <span class=\"n\">left<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">nextNode<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">nextNode<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">nextNode<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">nextNode<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>  <span class=\"c1\">\/\/ Return the updated list starting from the original head<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%AF%D8%B1%D9%87_%D9%86%D9%87%D9%85_%D8%B1%D8%A7_%D8%A7%D8%B2_%D8%A7%D9%86%D8%AA%D9%87%D8%A7%DB%8C_%D9%84%DB%8C%D8%B3%D8%AA_%D8%AD%D8%B0%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u06af\u0631\u0647 \u0646\u0647\u0645 \u0631\u0627 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0644\u06cc\u0633\u062a \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 19.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062d\u0630\u0641 \u06af\u0631\u0647 \u0646\u0647\u0645 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0644\u06cc\u0633\u062a&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">removeNthFromEnd<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">n<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">dummy<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\"> <span class=\"n\">n<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">first<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"n\">second<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"n\">second<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">second<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%AE%D9%87_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C\"><\/span>\n<p>  \u0686\u0631\u062e\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 141.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 \u0631\u0627\u0647 \u062d\u0644 \u0628\u0631\u0627\u06cc \u0645\u0633\u0626\u0644\u0647 &#8220;\u0686\u0631\u062e\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"kt\">bool<\/span> <span class=\"n\">hasCycle<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">head<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">false<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">slow<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">fast<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">fast<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">false<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%AE%D9%87_%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_II\"><\/span>\n<p>  \u0686\u0631\u062e\u0647 \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc II<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 142.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;List Linked Cycle II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">detectCycle<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">head<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Phase 1: Detect if there is a cycle<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">fast<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">slow<\/span> <span class=\"o\">==<\/span> <span class=\"n\">fast<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ No cycle detected<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">fast<\/span> <span class=\"o\">==<\/span> <span class=\"nb\">nullptr<\/span> <span class=\"o\">||<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">==<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Phase 2: Find the start node of the cycle<\/span>\n        <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">slow<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">fast<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">slow<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Both pointers meet at the start of the cycle<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D9%82%D8%A7%D8%B7%D8%B9_%D8%AF%D9%88_%D9%84%DB%8C%D8%B3%D8%AA_%D9%85%D8%B1%D8%AA%D8%A8%D8%B7\"><\/span>\n<p>  \u062a\u0642\u0627\u0637\u0639 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628\u0637<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 160.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062a\u0642\u0627\u0637\u0639 \u062f\u0648 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">getIntersectionNode<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">headA<\/span><span class=\"p\">,<\/span> <span class=\"n\">ListNode<\/span> <span class=\"o\">*<\/span><span class=\"n\">headB<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">headA<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">headB<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">ptrA<\/span> <span class=\"o\">=<\/span> <span class=\"n\">headA<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">ptrB<\/span> <span class=\"o\">=<\/span> <span class=\"n\">headB<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Traverse both lists. When a pointer reaches the end, redirect it to the head of the other list.<\/span>\n        <span class=\"c1\">\/\/ If they intersect, they will meet at the intersection node. If not, they will end up at the end of the lists together.<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">ptrA<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">ptrB<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">ptrA<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ptrA<\/span> <span class=\"o\">?<\/span> <span class=\"n\">ptrA<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">:<\/span> <span class=\"n\">headB<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">ptrB<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ptrB<\/span> <span class=\"o\">?<\/span> <span class=\"n\">ptrB<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">:<\/span> <span class=\"n\">headA<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">ptrA<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Either the intersection node or nullptr if no intersection<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%D9%88_%D8%B9%D8%AF%D8%AF_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u062f\u0648 \u0639\u062f\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 2.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u0648 \u0639\u062f\u062f&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">addTwoNumbers<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l1<\/span><span class=\"p\">,<\/span> <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">dummy<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">carry<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span> <span class=\"o\">||<\/span> <span class=\"n\">l2<\/span> <span class=\"o\">||<\/span> <span class=\"n\">carry<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"kt\">int<\/span> <span class=\"n\">sum<\/span> <span class=\"o\">=<\/span> <span class=\"n\">carry<\/span><span class=\"p\">;<\/span>\n\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">sum<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">;<\/span>\n                <span class=\"n\">l1<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">l2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">sum<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">;<\/span>\n                <span class=\"n\">l2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n\n            <span class=\"n\">carry<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sum<\/span> <span class=\"o\">\/<\/span> <span class=\"mi\">10<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"n\">sum<\/span> <span class=\"o\">%<\/span> <span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n            <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D9%88_%D8%B9%D8%AF%D8%AF_II\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0648 \u0639\u062f\u062f II<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 445.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0633\u0626\u0644\u0647 &#8220;Add Two Numbers II&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">addTwoNumbers<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l1<\/span><span class=\"p\">,<\/span> <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">stack<\/span><span class=\"o\"><span class=\"kt\">int<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">s1<\/span><span class=\"p\">,<\/span> <span class=\"n\">s2<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Push all values of l1 to stack s1<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">s1<\/span><span class=\"p\">.<\/span><span class=\"n\">push<\/span><span class=\"p\">(<\/span><span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">);<\/span>\n            <span class=\"n\">l1<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Push all values of l2 to stack s2<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">l2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">s2<\/span><span class=\"p\">.<\/span><span class=\"n\">push<\/span><span class=\"p\">(<\/span><span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">);<\/span>\n            <span class=\"n\">l2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">carry<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Process the stacks and build the result list<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">s1<\/span><span class=\"p\">.<\/span><span class=\"n\">empty<\/span><span class=\"p\">()<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">s2<\/span><span class=\"p\">.<\/span><span class=\"n\">empty<\/span><span class=\"p\">()<\/span> <span class=\"o\">||<\/span> <span class=\"n\">carry<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"kt\">int<\/span> <span class=\"n\">sum<\/span> <span class=\"o\">=<\/span> <span class=\"n\">carry<\/span><span class=\"p\">;<\/span>\n\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">s1<\/span><span class=\"p\">.<\/span><span class=\"n\">empty<\/span><span class=\"p\">())<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">sum<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">s1<\/span><span class=\"p\">.<\/span><span class=\"n\">top<\/span><span class=\"p\">();<\/span>\n                <span class=\"n\">s1<\/span><span class=\"p\">.<\/span><span class=\"n\">pop<\/span><span class=\"p\">();<\/span>\n            <span class=\"p\">}<\/span>\n\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">s2<\/span><span class=\"p\">.<\/span><span class=\"n\">empty<\/span><span class=\"p\">())<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">sum<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">s2<\/span><span class=\"p\">.<\/span><span class=\"n\">top<\/span><span class=\"p\">();<\/span>\n                <span class=\"n\">s2<\/span><span class=\"p\">.<\/span><span class=\"n\">pop<\/span><span class=\"p\">();<\/span>\n            <span class=\"p\">}<\/span>\n\n            <span class=\"n\">carry<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sum<\/span> <span class=\"o\">\/<\/span> <span class=\"mi\">10<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">node<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"n\">sum<\/span> <span class=\"o\">%<\/span> <span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n            <span class=\"n\">node<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">node<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%AF%D8%B1%D9%87_%D9%87%D8%A7_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B5%D9%88%D8%B1%D8%AA_%D8%AC%D9%81%D8%AA_%D8%B9%D9%88%D8%B6_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u06af\u0631\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u0641\u062a \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 24.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;\u062a\u0628\u0627\u062f\u0644 \u06af\u0631\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u0641\u062a&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">swapPairs<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">dummy<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n\n            <span class=\"c1\">\/\/ Swap the nodes<\/span>\n            <span class=\"n\">first<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">second<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">second<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">prev<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">second<\/span><span class=\"p\">;<\/span>\n\n            <span class=\"c1\">\/\/ Move prev pointer two nodes ahead<\/span>\n            <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B9%D9%86%D8%A7%D8%B5%D8%B1_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_%D8%B1%D8%A7_%D8%AD%D8%B0%D9%81_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0639\u0646\u0627\u0635\u0631 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 203.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Remove Linked List Elements&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">removeElements<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">val<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/ Remove leading nodes with the value 'val'<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">head<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span> <span class=\"o\">==<\/span> <span class=\"n\">val<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">head<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ If the list becomes empty, return nullptr<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">head<\/span> <span class=\"o\">==<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Initialize current pointer<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Traverse the list and remove nodes with the value 'val'<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span> <span class=\"o\">==<\/span> <span class=\"n\">val<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AF%D8%BA%D8%A7%D9%85_%D8%AF%D9%88_%D9%84%DB%8C%D8%B3%D8%AA_%D9%85%D8%B1%D8%AA%D8%A8_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0627\u062f\u063a\u0627\u0645 \u062f\u0648 \u0644\u06cc\u0633\u062a \u0645\u0631\u062a\u0628 \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 21.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Merge Two Sorted List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l1<\/span><span class=\"p\">,<\/span> <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">l2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/ Create a dummy node to simplify the merging process<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">dummy<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">ListNode<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dummy<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Merge the two lists while both have remaining nodes<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">l2<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span> <span class=\"o\"> <span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l1<\/span><span class=\"p\">;<\/span>\n                <span class=\"n\">l1<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l1<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n                <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l2<\/span><span class=\"p\">;<\/span>\n                <span class=\"n\">l2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l2<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n            <span class=\"n\">current<\/span> <span class=\"o\">=<\/span> <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Append any remaining nodes from either list<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">l1<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l1<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">current<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">l2<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Return the merged list starting from dummy-&gt;next<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">dummy<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%AE%D9%88%D8%B1%D8%AF%D9%87_%D8%B2%D9%88%D8%AC_%D8%B2%D9%88%D8%AC\"><\/span>\n<p>  \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u062e\u0648\u0631\u062f\u0647 \u0632\u0648\u062c \u0632\u0648\u062c<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 328.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Odd Even Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">oddEvenList<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">head<\/span> <span class=\"o\">==<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Initialize pointers for odd and even nodes<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">odd<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">even<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">evenHead<\/span> <span class=\"o\">=<\/span> <span class=\"n\">even<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Keep track of the start of even list<\/span>\n\n        <span class=\"c1\">\/\/ Iterate through the list to rearrange the nodes<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">even<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">even<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">!=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">odd<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">even<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Link the odd nodes<\/span>\n            <span class=\"n\">odd<\/span> <span class=\"o\">=<\/span> <span class=\"n\">odd<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>        <span class=\"c1\">\/\/ Move to the next odd node<\/span>\n            <span class=\"n\">even<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">odd<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Link the even nodes<\/span>\n            <span class=\"n\">even<\/span> <span class=\"o\">=<\/span> <span class=\"n\">even<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>      <span class=\"c1\">\/\/ Move to the next even node<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Attach the even list at the end of the odd list<\/span>\n        <span class=\"n\">odd<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">evenHead<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C_%D9%BE%D8%A7%D9%84%DB%8C%D9%86%D8%AF%D8%B1%D9%88%D9%85\"><\/span>\n<p>  \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0627\u0644\u06cc\u0646\u062f\u0631\u0648\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 234.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Palindrome Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"kt\">bool<\/span> <span class=\"n\">isPalindrome<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">head<\/span> <span class=\"o\">||<\/span> <span class=\"o\">!<\/span><span class=\"n\">head<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Step 1: Find the middle of the linked list using the fast and slow pointer technique<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">fast<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Step 2: Reverse the second half of the list<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">nullptr<\/span><span class=\"p\">;<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">slow<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">nextNode<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">prev<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">nextNode<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"c1\">\/\/ Step 3: Compare the first half and the reversed second half<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">firstHalf<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">secondHalf<\/span> <span class=\"o\">=<\/span> <span class=\"n\">prev<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">secondHalf<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">firstHalf<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">secondHalf<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">val<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"nb\">false<\/span><span class=\"p\">;<\/span>\n            <span class=\"p\">}<\/span>\n            <span class=\"n\">firstHalf<\/span> <span class=\"o\">=<\/span> <span class=\"n\">firstHalf<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">secondHalf<\/span> <span class=\"o\">=<\/span> <span class=\"n\">secondHalf<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%88%D8%B3%D8%B7_%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%DB%8C%D9%88%D9%86%D8%AF_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0648\u0633\u0637 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>This question is part of Leetcode problems, question no. 876.<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633 Solution \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 &#8220;Middle of the Linked List&#8221; \u062f\u0631 C++ \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Solution<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n    <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">middleNode<\/span><span class=\"p\">(<\/span><span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">head<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">ListNode<\/span><span class=\"o\">*<\/span> <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">head<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"c1\">\/\/ Move slow by one step and fast by two steps<\/span>\n        <span class=\"c1\">\/\/ When fast reaches the end, slow will be at the middle<\/span>\n        <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">fast<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">slow<\/span> <span class=\"o\">=<\/span> <span class=\"n\">slow<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n            <span class=\"n\">fast<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fast<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">next<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">slow<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u0634\u062f\u0647 \u0644\u06cc\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u06cc \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u062e\u0637\u06cc \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 \u06af\u0631\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06af\u0631\u0647 \u062d\u0627\u0648\u06cc \u062f\u0627\u062f\u0647 \u0648 \u06cc\u06a9 \u0645\u0631\u062c\u0639 (\u06cc\u0627 \u067e\u06cc\u0648\u0646\u062f) \u0628\u0647 \u06af\u0631\u0647 \u0628\u0639\u062f\u06cc \u062f\u0631 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u0633\u062a. \u0628\u0631\u062e\u0644\u0627\u0641 \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627\u060c \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f\u06cc \u067e\u0648\u06cc\u0627 \u0647\u0633\u062a\u0646\u062f \u0648 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":76660,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-76659","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/76659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=76659"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/76659\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/76660"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=76659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=76659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=76659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}