网站开发需要多少钱价格网站开发平台及常用开发工具
2026/2/20 0:03:35 网站建设 项目流程
网站开发需要多少钱价格,网站开发平台及常用开发工具,网站建设的辅助软件,在线做头像的网站有哪些思路#xff1a;1.先考虑怎么判断一个字符串是不是回文字符串。可以从最左最右开始#xff0c;比较第一个字母和最后一个字母是不是一样的#xff0c;如果第一个字母和最后一个字母是一样的#xff0c;那么就继续比较第二个字母和倒数第二个字母#xff0c;以此类推。2.如…思路1.先考虑怎么判断一个字符串是不是回文字符串。可以从最左最右开始比较第一个字母和最后一个字母是不是一样的如果第一个字母和最后一个字母是一样的那么就继续比较第二个字母和倒数第二个字母以此类推。2.如何快速找到链表的最后一个节点、倒数第二个节点、倒数第三个节点......?3.首先可以找到链表的中间节点1如果链表有奇数个节点就找正中间的节点。2如果链表有偶数个节点就找正中间右边的节点。4.然后把中间节点到链表末尾反转如上图所示反转后得到链表6-5-4其头节点记作head2这样就能从head2开始依次访问原链表的最后一个节点、倒数第二个节点、倒数第三个节点...。5.最后同时遍历head和head2这两个链表每次循环判断head.val是否等于head2.val若不相等则返回false。循环直到head2链表遍历结束如果循环中没有返回false则说明链表是回文的返回true。6.注意1第一张图中的2-3在反转链表后并不会断开。第一张图反转链表后我们得到了两条链表一条是1-2-3另一条是5-4-3。2第二张图中的3-4在反转链表后并不会断开。第二张图反转链表后我们得到了两条链表一条是1-2-3-4另一条是6-5-4。这意味着代码在写循环的时候循环条件要判断head2是否为空而不是head是否为空否则会错误地多循环一次导致访问head2.val出现空指针异常。7.问为什么不反转整个链表这样也可以访问原链表的最后一个节点、倒数第二个节点、倒数第三个节点......答因为还要从head开始遍历链表访问原链表的第一个节点、第二个节点、第三个节点......。如果反转整个链表那么链表前半段的结构就被破坏了。8.复杂度分析1时间复杂度O(n)其中n是链表的长度节点个数。2空间复杂度O(1)。附代码class Solution { public boolean isPalindrome(ListNode head) { ListNode mid middleNode(head); ListNode head2 reverseList(mid); while(head2 ! null){ if(head.val ! head2.val){ // 不是回文链表 return false; } head head.next; head2 head2.next; } return true; } //求链表的中间节点 //快慢指针法对于无环链表可让快指针每次走两步慢指针每次走一步当快指针走到结尾处时慢指针到达中间节点 private ListNode middleNode(ListNode head){ ListNode slow head; ListNode fast head; while(fast ! null fast.next ! null){ slow slow.next; fast fast.next.next; } return slow; } //反转链表 private ListNode reverseList(ListNode head){ ListNode pre null; ListNode cur head; while(cur ! null){ ListNode tmp cur.next; cur.next pre; pre cur; cur tmp; } return pre; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询