![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构:链表
model1220
这个作者很懒,什么都没留下…
展开
-
Java:如何实现链表的反转
public class reverseiteratively { public static void method(Node head) { Node p1=head; Node p2=head.next; Node temp=null; while(p2.next!=null) { temp=p2.next; p2.next=p1; p1=p2; p原创 2017-10-06 23:33:50 · 425 阅读 · 0 评论 -
Java:如何找出单链表中的倒数第k个元素
设置两个指针,相差k个节点。//如何找出单链表中的倒数第k个元素public class findelem { public static Node method(Node head,int k) { if(k<1) { return null; } Node p1=head; Node p2=head; for(int i=0;i<k-1&&p1!=null;i++原创 2017-10-06 23:13:11 · 2272 阅读 · 0 评论 -
Java:如何从链表中删除重复数据
//如何从链表中删除重复的数据第一种方法:遍历链表,把遍历的值存储到一个hashtable中,在遍历过程中,若当前访问的值在hashtable中已经存在,则说明这个数据是重复的第二种方法:对链表进行双重循环。public class deleteDuplecate { static void method1(Node head) { Hashtable table=new Has原创 2017-10-06 22:55:50 · 790 阅读 · 0 评论 -
Java:倘若一个链表有环,如何找到环的入口
如果单链表有环,按照判断是否有环的思路,当快指针和慢指针相遇时,slow指针肯定没有遍历完链表,而fast指针已经在环内循环了n圈。假设slow指针走了s步,则fast指针走了2*s步,设环长为r,则:2*s=s+n*r;s=n*r;设链表头到环入口距离为l,入口处距离相遇点距离为a,则:s=l+a+mr;得:l=(n-m)r - a可见,相遇后,如果在链表头和相遇点各设置原创 2017-10-06 23:59:06 · 1708 阅读 · 0 评论 -
Java:如何寻找单链表的中间节点
解决方法:设置两个指针,一个快指针,每次走两步,一个慢指针,每次走一步。public class searchMid { public Node method(Node head) { Node p=head; Node q=head; while(q!=null&&q.next!=null&&q.next.next!=null) { p=p.next; q=原创 2017-10-06 23:42:21 · 2544 阅读 · 0 评论 -
Java:如何用链表实现栈
class Node{ Node next=null; E data; public Node(E data) { this.data=data; }}public class Mystack { Node top=null;//栈顶 //isEmpty(),测试堆栈是否为空。 public boolean isEmpty() { return top==null; }原创 2017-10-07 11:30:22 · 673 阅读 · 0 评论 -
Java:如何检测一个链表是否有环。
。原创 2017-10-06 23:57:18 · 757 阅读 · 0 评论