单链表找中间的节点,在链表中查找节点

首页 > 经验 > 作者:YD1662022-11-04 00:29:10

想法:

返回单链表的中间节点:采用双指针方法,慢指针走一步,快指针走2步,当快指针走到头,那么慢指针所在的位置就是链表的中间节点。值得注意的是,要保证可以走两步,必须有快指针的下下节点不为空的判断

public ListNode middleNode(ListNode head) { ListNode p1 = head; ListNode p2 = head; while(p1 != null && p1.next != null){//保证快指针的下下节点不为空 p1 = p1.next.next; p2 = p2.next; } return p2; }

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.