力扣简876 链表的中间节点

只要一个一步一步走 另一个指针两步两步走 然后快的走到终点 慢的就是中点
//只有两种情况 一种中间节点有一个 一种有两个 分开讨论一下
public static ListNode middleNode(ListNode head) {
        ListNode temp=head;
        while(temp.next!=null&&temp.next.next!=null) {
            head=head.next;
            temp=temp.next.next;
        }
        if(temp.next!=null) {//只有两种情况 一种中间节点有一个 一种有两个 分开讨论一下
            head=head.next;
        }            
        return head;
        
    }

 

题解:1空间复杂度更高 链表存在listnode数组里 取中间值 2两次遍历一次计数一次找

posted @ 2023-02-27 11:27  Ssshiny  阅读(19)  评论(0)    收藏  举报