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

制作网站哪里做苏州吴中区seo关键词优化排名

制作网站哪里做,苏州吴中区seo关键词优化排名,济南微网站开发,免费制作企业贺卡24. 两两交换链表中的节点 第一遍-递归-小看了一下题解 思路: 读了两遍题目才理解…相邻节点的交换,这个操作很容易实现,但需要一个tmpNode因为是链表的题目,没开始思考之前先加了dummyNode,还真管用把dummyNode作为…

24. 两两交换链表中的节点

第一遍-递归-小看了一下题解

  • 思路:
    • 读了两遍题目才理解…
    • 相邻节点的交换,这个操作很容易实现,但需要一个tmpNode
    • 因为是链表的题目,没开始思考之前先加了dummyNode,还真管用
    • dummyNode作为了最后返回用的,以及新增preNode作为tmpNode
    • 用递归写是因为不想用循环了…感觉递归写起来好玩一些
    • 小看了一下题解的地方:(其实再给自己多一些debug的次数应该也能试出来)
      • 递归结束条件:|| i.next.next == null这个没有想出来
/*
* 这部分是自己在Idea上写的,用了之前的题目实现的MyLinkedList
* 感觉这样会比在力扣上面写更能熟悉链表一些,而且debug更容易一些
* */
package LinkList;public class Linklist_test {public static void main(String[] args) {MyLinkedList myLinkedList = new MyLinkedList();
//        myLinkedList.addAtHead(4);myLinkedList.addAtHead(3);myLinkedList.addAtHead(2);myLinkedList.addAtHead(1);LinklistSolution solution = new LinklistSolution();ListNode head = solution.swapPairs(myLinkedList.dummy.next);for (; head != null; head = head.next) {System.out.println(head.val);}}
}class LinklistSolution {public ListNode reverseDouble(ListNode head, ListNode preNode, ListNode i, ListNode j) {// 交换节点preNode.next = i.next;i.next = j.next;j.next = i;if (i.next == null || i.next.next == null) return head.next;// 移动节点j = i.next.next;i = i.next;preNode = preNode.next.next;return reverseDouble(head, preNode, i, j);}public ListNode swapPairs(ListNode head) {if (head == null || head.next == null) return head;ListNode dummy = new ListNode(-1);dummy.next = head;ListNode preNode = dummy;ListNode i = head;ListNode j = head.next;return reverseDouble(dummy, preNode, i, j);}
}
  • 看了一下代码随想录Java的递归题解,嗯,真🐂,我想不出来
    • 示例代码很好的利用了链表是通过指向下一个节点的地址链接的,所以返回newNode可以实现;
// 示例代码
class LinklistSolution {public ListNode swapPairs(ListNode head) {// base case 退出提交if(head == null || head.next == null) return head;// 获取当前节点的下一个节点ListNode next = head.next;// 进行递归ListNode newNode = swapPairs(next.next);// 这里进行交换next.next = head;head.next = newNode;return next;}
}

19.删除链表的倒数第N个节点

第一遍

  • 思路:
    • 这一题误操作了,忘记先自己想了,直接看题解了…
    • 算是两遍AC吧,第一次fast指针的循环没控制好
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode(-1);dummy.next = head;if (head.next == null) {return head.next;}ListNode slow = dummy;ListNode fast = dummy;for (int i = 0; i <= n; i++) {fast = fast.next;}for (; fast != null; fast = fast.next) {slow = slow.next;// fast = fast.next; 第一次提交的时候多写了一个这个,debug的时候才发现不对}slow.next = slow.next.next;return dummy.next;}
}

面试题 02.07. 链表相交

第一遍

  • 思路:
    • 读了第一遍直接写了,第一次开始写循环又出错了…而且出了两个错误
      • 错误1:判断条件写成了A.next != null,导致所有的链表长度都-1,长度为1且相交的时候会有问题;
      • 错误2:没有写A = A.next的修改条件;
    • 第一遍写完,使用的是A.val = B.val的判断条件,不对,发现有val相等,但是答案并不是对应指针;
    • 麻了,又去看题,看了n遍都没看懂;
    • 最后看了题解,结果发现是指针相等(怎么从题中读出的指针相等的?)
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA == null || headB == null) {return null;}ListNode A = headA;ListNode B = headB;int lenA = 0, lenB = 0;while (A != null) {lenA++;A = A.next;}while (B != null) {lenB++;B = B.next;}A = headA;B = headB;int n = lenA >= lenB ? lenA - lenB : lenB - lenA;int m = lenA >= lenB ? lenB : lenA;if (lenA > lenB) {while (n > 0) {A = A.next;n--;}} else {while (n > 0) {B = B.next;n--;}}while (m > 0) {if (A == B) {return A;}A = A.next;B = B.next;m--;}return null;}
}

142.环形链表II

第一遍-看题解后一遍过

  • 思路:
    • 20mins的思考,想到了slowNode每次+1,fastNode每次+2;
    • 但这样单纯的移动,会导致两个点相遇的时候不在入口,答案错误;
    • 最后还是看了题解,感觉不太能想得出来;
public class Solution {public ListNode detectCycle(ListNode head) {if (head == null || head.next == null) {return null;}ListNode fastNode = head;ListNode slowNode = head;while (fastNode != null && fastNode.next != null) {slowNode = slowNode.next;fastNode = fastNode.next.next;if (fastNode == slowNode) {while (head != fastNode) {head = head.next;fastNode = fastNode.next;}return head;}}return null;}
}
http://www.15wanjia.com/news/30799.html

相关文章:

  • 怎么做网站二维码seo推广思路
  • 河北疫情最新消息情况东莞百度seo新网站快速排名
  • 设计品牌网站公司怎样做网络推广
  • 网站开发宣传推广的十种方式
  • 做网站的公司上海南京网站设计优化公司
  • 赣州市建设工程造价管理网站seo在线培训
  • 做网站有什么建议品牌如何做推广
  • 百度服务器建设自己的网站游戏推广代理平台
  • 建个公司网站多少钱成都专门做网络推广的公司
  • 单页建站系统网络营销策划总结
  • 怎么给网站的照片做超级链接推广普通话宣传语100字
  • 网站编辑楼盘详情页怎么做如何提高自己在百度的排名
  • 北京网站建设设计公司哪家好关键词歌词含义
  • 营销型企业网站怎么制作发帖推广平台
  • 做网站的公司怎么做业务长沙全网推广
  • 免费软件站苏州关键词排名系统
  • g宝盆网站建设优惠电商项目策划书
  • 好站站网站建设推广新浪网今日乌鲁木齐新闻
  • 什么网站免费做简历模板俄罗斯搜索引擎yandex
  • 网站源码在线查询网站seo综合查询
  • 大型网站建设定制全国疫情排名一览表
  • 做的最成功的个人网站成都网站制作关键词推广排名
  • 网站制作乌鲁木齐谷歌推广公司哪家好
  • 免费网站模板 百度一下建站abc官方网站
  • wordpress添加二级踩点aso优化师工作很赚钱吗
  • 做零售外贸网站有哪些个人怎么创建网站
  • 大型电商网站开发成本百度权重是什么意思
  • 网站制作的管理今日国际新闻热点
  • b站推广费用一般多少西安百度竞价开户
  • 简易静态网站制作流程图网上推广平台