zoukankan      html  css  js  c++  java
  • 876--Middle Of The Linked List

    package LinedList;
    
    import java.util.LinkedList;
    import java.util.List;
    
    public class MiddleOfTheLinkedList {
        // 解法一:求到链表长度,然后再去中间节点。
        public ListNode middleNode(ListNode head) {
            ListNode middleNode =head;
            int size=1;
            while (middleNode.next!=null){
                middleNode=middleNode.next;
                size++;
            }
            middleNode=head;
            for (int i=1;i<(size/2)+1;i++){
                middleNode= middleNode.next;
            }
            return middleNode;
        }
        //解法二:解法一的目的就是找到索引,所以可以直接将节点放入数组中,然后取中间节点即可,
        //        省去了再次遍历。
        public ListNode middleNode2(ListNode head) {
            List<ListNode> list=new LinkedList<>();
            ListNode current=head;
            while (current!=null){
                list.add(current);
                current=current.next;
            }
            return list.get((list.size()/2));
        }
        //解法三:快慢指针,遍历链表时,慢指针速度为一,快指针速度为二。
        //          则快指针遍历完时,慢指针就指向中间节点。
        public ListNode middleNode3(ListNode head) {
           ListNode slow=head;
           ListNode fast=head;
           while (fast!=null&&fast.next!=null){
               slow=slow.next;
               fast=fast.next.next;
           }
           return slow;
        }
    }
  • 相关阅读:
    poj 3087 直接模拟
    POJ-3126 BFS,埃式筛选及黑科技
    POJ3278-Catch That Cow
    js变量提升
    饿了么
    2分钟就能学会的【Google/百度搜索大法】了解一下?
    span标签间距
    Vue移动端项目如何使用手机预览调试
    Port 3000 is already in use
    koa2第一天 async详解
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/11356770.html
Copyright © 2011-2022 走看看