zoukankan      html  css  js  c++  java
  • 876. Middle of the Linked List

    经典链表题
    找链表的中间节点 快慢指针
    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    //Definition for singly-linked list.
    
    //Given a non-empty, singly linked list with head node head, return a middle node of linked list.
    //
    //If there are two middle nodes, return the second middle node.
    //
    //
    //
    //Example 1:
    //
    //Input: [1,2,3,4,5]
    //Output: Node 3 from this list (Serialization: [3,4,5])
    //The returned node has value 3.  (The judge's serialization of this node is [3,4,5]).
    //Note that we returned a ListNode object ans, such that:
    //ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.
    //        Example 2:
    //
    //Input: [1,2,3,4,5,6]
    //Output: Node 4 from this list (Serialization: [4,5,6])
    //Since the list has two middle nodes with values 3 and 4, we return the second one.
    
     struct ListNode{
         int val;
         ListNode* next;
         ListNode(int x):val(x),next(NULL){} //初始化列表
     };
     class Solution{
     public:
         ListNode* middleNode(ListNode* head){
             if(head==NULL)
                 return head;
             ListNode* slow=head;
             ListNode* fast=head;
             while(fast&&fast->next){
                 fast=fast->next->next;
                 slow=slow->next;
             }
             return slow;
         }
     };
    
    int main(){
        vector<int> vals={1,2,3,4,5};
        ListNode* head=NULL;
        ListNode* cur=NULL;
        for(int i=0;i<vals.size();++i){
            if(cur==NULL){
                head=cur=new ListNode(vals[i]);
            }else{
                cur->next=new ListNode(vals[i]);
                cur=cur->next;
            }
        }
    
        Solution solution;
        ListNode* middle=solution.middleNode(head);
        std::cout<<middle->val<<endl;
        return 0;
    }
  • 相关阅读:
    leetcode ZigZag conversion(mediium) /java
    leetcode longest palindromic substring (medium) /java
    leetcode longest substring without repeating characters(medium) /java
    leetcode two_sum (easy) /java
    think_in_java_多态
    java复用类知识
    java找不到或无法加载主类
    java程序包不存在
    集合
    列表的增删改查
  • 原文地址:https://www.cnblogs.com/learning-c/p/9763871.html
Copyright © 2011-2022 走看看