当前位置: 首页 > wzjs >正文

辽宁网站建设公司广州seo外包公司

辽宁网站建设公司,广州seo外包公司,韩国女排出线,牧羊人wordpress主题想想为什么要a走b的路b走a的路 因为这样到达相交点的话是同时的(路程才是一样的) 这样能保证第二圈就相遇了 如果各走各的路很难相遇 两个无交点的链表也有一个null交点 /*** Definition for singly-linked list.* public class ListNode {* int…

 

 

 

想想为什么要a走b的路b走a的路 因为这样到达相交点的话是同时的(路程才是一样的)

这样能保证第二圈就相遇了 如果各走各的路很难相遇

两个无交点的链表也有一个null交点 

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode A = headA;ListNode B = headB;while(A!=B){A = (A != null?A.next:headB);B = (B != null?B.next:headA);}return A;}
}
//各走各的路
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode A = headA;ListNode B = headB;int flag = 0;while(A!=B){A = (A != null?A.next:headA);B = (B != null?B.next:headB);if(A == B && B == null){flag ++;if(flag == 2)return A;A = (A != null?A.next:headA);B = (B != null?B.next:headB);}}return A;}
}

 

 

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode cur = head,pre = null;while(cur!= null){ListNode tmp = cur.next;cur.next = pre;//修改next引用指向pre = cur;cur = tmp;}return pre;}
}

 

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {return recur(head,null);//递归调用并返回    }private ListNode recur(ListNode cur,ListNode pre){if(cur == null)return pre;//进到这个地方了 然后开始返回ListNode res = recur(cur.next,cur);//递归后面的结点cur.next = pre;return res;}
}

 

 

 

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {//如果链表为空或只有一个结点 就直接返回trueif(head==null||head.next == null)return true;//找到前半部分链表的尾节点ListNode l_End = endOfFirstHalf(head);//反转后半部分链表并找到开头ListNode r_Head = reverseList(l_End.next);//判断是否会问ListNode p1= head;ListNode p2 = r_Head;boolean result = true;while(result==true&&p2 != null){if(p1.val!=p2.val)return false;p1 = p1.next;p2 = p2.next;}// 还原链表并返回结果l_End.next = reverseList(r_Head);return result;}private ListNode reverseList(ListNode head){ListNode pre = null;ListNode cur = head;while(cur != null){ListNode temp = cur.next;cur.next = pre;pre = cur;cur = temp;} return pre;//返回反转后链表的head}private ListNode endOfFirstHalf(ListNode head){ListNode fast = head;ListNode slow = head;while(fast.next!=null&&fast.next.next != null){fast = fast.next.next;slow = slow.next;}return slow;}//慢的走一步 快的走两步
}

 

 

public class Solution {public boolean hasCycle(ListNode head) {if (head == null || head.next == null) {return false;}ListNode slow = head;ListNode fast = head.next;//防止上来就相等while (fast != null && fast.next != null) {//就保证了fast.next.next存在if (slow == fast) {return true;}slow = slow.next; // 慢指针每次移动一步fast = fast.next.next; // 快指针每次移动两步}return false; // 如果快指针到达链表末尾,则没有环}
}
public class Solution {public boolean hasCycle(ListNode head) {if (head == null || head.next == null) {return false;}ListNode slow = head;ListNode fast = head;while (fast != null && fast.next != null) {//就保证了fast.next.next存在slow = slow.next; // 慢指针每次移动一步fast = fast.next.next; // 快指针每次移动两步if (slow == fast) {return true;}}return false; // 如果快指针到达链表末尾,则没有环}
}

 

 

 

慢指针一定还没有走完一圈 

a = (k-1)(b+c) + c   即a == c会在入口处相遇

import java.util.HashSet;
import java.util.Set;public class Solution {public ListNode detectCycle(ListNode head) {Set<ListNode> visited = new HashSet<>();while (head != null) {if (visited.contains(head)) {return head;}visited.add(head);head = head.next;}return null;}
}
public class Solution {public ListNode detectCycle(ListNode head) {if (head == null || head.next == null) {//判断这个就行了 不要多判断return null;}ListNode slow = head;ListNode fast = head;while (fast != null && fast.next != null) {//判断这个就行了slow = slow.next;fast = fast.next.next;if (slow == fast) {ListNode slow2 = head;while (slow != slow2) {//不要写while trueslow = slow.next;slow2 = slow2.next;}return slow;}}return null;}
}

 

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode new_head = new ListNode(-101);ListNode cur = new_head;while(list1!=null&&list2!=null){if(list1.val<list2.val){cur.next = list1;list1 = list1.next;}else{cur.next = list2;list2 = list2.next;}cur = cur.next;}// 将剩余的节点连接到合并后的链表末尾cur.next = (list1 != null) ? list1 : list2;//想想为什么这里只用做一个 而不用将剩下的每个节点都做 因为链表存的是指针return new_head.next;}
}

 

 

http://www.dtcms.com/wzjs/112605.html

相关文章:

  • 做翻译兼职的网站亚洲长尾关键词挖掘
  • 长沙创意网站建设泉州关键词优化排名
  • 网站备案中seo线下培训机构
  • wordpress栏目加密长春seo排名扣费
  • 成都公司建设网站域名查询ip网站
  • 做网站的技术名优网站关键词优化
  • 海外房产网站建设网络广告推广公司
  • 西宁网站维护公司石家庄谷歌seo
  • 企业做网站有什么好处坏处搜索引擎推广的关键词
  • discuz 网站标题百度云登录
  • 深圳布吉做网站如何进行品牌营销
  • 怎么判断一个网站做的好不好如何销售自己产品方法有哪些
  • 珠海市做网站公司深圳网络营销推广服务
  • 万网域名注册登录seo精华网站
  • 做标准件网站网站排名大全
  • 电商型网站设计企业站长之家源码
  • 蛋糕网站案例杭州百度推广优化排名
  • 网站建设项目及费用提高工作效率的软件
  • 奉节网站建设哪家公司做推广优化好
  • 商城网站管理系统百度开放平台
  • thinkphp5来做网站吗冯耀宗seo博客
  • h5可以做网站吗免费产品推广软件
  • 网站管理员的联系方式宁波seo公司排名
  • 海南中小企业网站建设微信scrm系统
  • 网站建设公司豆瓣最近热点新闻事件2023
  • 广东响应式网站东莞网站提升排名
  • 用jsp做网站竞猜世界杯
  • 菏泽去哪了做网站网络黄页推广大全
  • java做的网站php百度助手app免费下载
  • 莱芜人才网招聘网嘉兴seo优化