博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
876--Middle Of The Linked List
阅读量:4539 次
发布时间:2019-06-08

本文共 1190 字,大约阅读时间需要 3 分钟。

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
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; }}

 

转载于:https://www.cnblogs.com/zhangyuhao/p/11356770.html

你可能感兴趣的文章
【Windows】Windows中解析DOS的for命令使用
查看>>
MVC3: 页面向服务传参(view->controller,get,post)
查看>>
vs2008 卡一下的问题
查看>>
Windows Socket五种I/O模型——代码全攻略
查看>>
多线程相关
查看>>
处理并解决mysql8.0 caching-sha2-password问题
查看>>
JavaScript 之 对象/JSON/数组
查看>>
判断delegate是否释放
查看>>
实验八
查看>>
时间日期函数
查看>>
java多线程的实现方法
查看>>
2016年终总结与来年计划
查看>>
10.9做的一个静态页面(巩固前面的内容)
查看>>
幸运男孩--点的hash
查看>>
大数的减法------神秘数
查看>>
洛谷P1658 购物
查看>>
Using Perl in Oracle 11gR2 Database
查看>>
Rabel 1.3.9 发布,让论坛回归交流本质
查看>>
Mac 安装brew和安装composer
查看>>
不用系统函数将字符串转换成整型【Java算法】
查看>>