返回链表的中间结点,若中间有两个结点,则返回后一个结点(两种方法)
生活随笔
收集整理的這篇文章主要介紹了
返回链表的中间结点,若中间有两个结点,则返回后一个结点(两种方法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.先遍歷整個鏈表,求出鏈表長度,在進行循環找出中間結點
public class Solution {public ListNode middleNode(ListNode head) {int len=0;for(ListNode cur=head;cur!=null;cur=cur.next)len++;//遍歷算出鏈表長度ListNode node=head;for(int i=0;i<len/2;i++)node=node.next;return node;} }2.利用快慢指針,定義兩個引用,fast指針一次走兩步,slow指針一次走一步,直至fast.next=null停止,即為中間結點
public class Solution {public ListNode middleNode(ListNode head) {ListNode fast=head;ListNode slow=head;while(fast!=null){fast=fast.next;if(fast==null){break;}//因為fast每次走兩步,有可能走一步時就到了最后(奇數節點時)slow=slow.next;fast=fast.next;}return slow;} }?
總結
以上是生活随笔為你收集整理的返回链表的中间结点,若中间有两个结点,则返回后一个结点(两种方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本电脑WIFI图标突然不显示的解决办
- 下一篇: 基于RK3399的LED驱动开发