链表oj(3)----链表的中间结点
题目内容:
方法一:快慢指针法(让prev标记慢的那一个)
ListNode cur = head;
ListNode prev = head;
while(cur != null && cur.next != null){
prev = prev.next;
cur = cur.next.next;
}
return prev;
方法二:先计算出链表的长度,在遍历链表
ListNode cur = head;
int count = 0;
while(cur != null){
count++;
cur = cur.next;
}
count >>= 1;
cur = head;
while(count != 0){
cur = cur.next;
count--;
}
return cur;
更推荐方法一,只需要遍历一次链表,逻辑性也更强
还没有评论,来说两句吧...