java链表寻找中间节点
2017-10-15 13:06
190 查看
public class ListNode { public int info; public ListNode next;//这里就是链接,指向下一个节点的内存地址 ListNode first, last, newNode; public ListNode buildList(int[] input) { if (input.length > 0) { for (int i = 0; i < input.length; i++) { newNode = new ListNode(); newNode.info = input[i]; newNode.next = null; if (first == null) { first = newNode; last = newNode; } else { last.next = newNode; last = newNode; } } } return first; } public static void main(String[] args) { int[] array = {1, 2, 3, 4}; ListNode linkedList = new ListNode(); ListNode head = linkedList.buildList(array); ListNode.printList(head); findMid(head); } private static void printList(ListNode head) { while (head != null) { System.out.println(head.info); head = head.next; } } private static void findMid(ListNode head) { ListNode slow = head; ListNode fast = head; while (fast !=null && fast.next !=null ) { fast = fast.next.next; slow = slow.next; }//这个总数是4,会取3 //这个方法也可以 // while(fast.next != null){ // if(fast.next.next != null){ // fast = fast.next.next; // slow = slow.next; // } else { //// fast = fast.next; // break;//这个地方就退出循环了,用break或者fast = fast.next;都可以 // } // // } System.out.println(slow.info); } }
相关文章推荐
- Java实现寻找链表的中间节点
- 寻找链表中间节点—一种高效的算法
- 寻找链表中间节点
- 【C语言】单链表的相关热点面试题(包括:从尾到头打印,逆置,冒泡,寻找中间节点,倒数k节点)
- 寻找和删除链表的中间节点
- 寻找链表的中间节点
- 链表逆序 和 寻找链表中间节点
- 寻找链表的中间节点
- Java实现查找链表的中间节点,(在未知链表长度的情况下)
- 寻找链表中间节点-一种高效的算法
- 单链表删除头节点和不知道N的情况下寻找中间节点
- 寻找链表中间节点
- Java:如何寻找单链表的中间节点
- 【C语言】单链表的相关热点面试题(包括:从尾到头打印,逆置,冒泡,寻找中间节点,倒数k节点)
- 寻找链表中间节点-一种高效的算法
- 【面试题】-求未知长度的链表的中间节点(快慢指针)
- Java找出两个链表的第一个公共节点
- C语言数据结构之如何快速查找链表的中间节点
- 删除链表中重复的节点(Java实现)
- Java实现循环链表之节点类