美文网首页
链表的中间结点

链表的中间结点

作者: 奉灬孝 | 来源:发表于2021-03-18 17:09 被阅读0次

    思路:使用两个指针变量,刚开始都位于链表的第 1 个结点,慢指针一次只走 1 步,快指针一次只走 2 步,一个在前,一个在后,同时走。这样当快指针走完的时候,慢指针就来到了链表的中间位置。

    代码如下:

    struct ListNode {
          int val;
          struct ListNode *next;
    };
    
    struct ListNode* middleNode(struct ListNode* head){
        struct ListNode *fast = head;
        struct ListNode *slow = head;
        while( (fast) && (fast->next)){
            slow = slow -> next;
            fast = fast -> next -> next;
        }
        return slow;
    }
    

    相关文章

      网友评论

          本文标题:链表的中间结点

          本文链接:https://www.haomeiwen.com/subject/bdkpcltx.html