LeetCode 876 题解

876. Middle of the Linked List

题目大意:返回一个list中间的元素,如果有两个则返回第二个;

解题思路:利用两个指针,一个步长为1一个为2,当2走到尾端,第一个走到的就是答案;

class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        if(head==NULL || head->next==NULL) return head;
        ListNode* p1=head;
        ListNode* p2=head;
        while(p2!=NULL)
        {
            if(p2->next !=NULL) ;
            else break;
            p1 =  p1->next;
            p2 =  p2->next;
            if(p2->next !=NULL) p2 = p2->next;
        }
        return p1;
    }
};

猜你喜欢

转载自blog.csdn.net/u011439455/article/details/81272026