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

公司外包seo外包优化公司

公司外包,seo外包优化公司,营销型网站设计房地产,wordpress页面的添加背景音乐做题总结 707. 设计链表 leetcode中单链表节点的默认定义我的尝试正确运行的代码(java) leetcode中单链表节点的默认定义 class ListNode {int val;ListNode next;//无参public ListNode() {}//有参:1public ListNode(int val) {this.val val;}//有参:…

做题总结 707. 设计链表

  • leetcode中单链表节点的默认定义
  • 我的尝试
  • 正确运行的代码(java)

leetcode中单链表节点的默认定义

class ListNode {int val;ListNode next;//无参public ListNode() {}//有参:1public ListNode(int val) {this.val = val;}//有参:2public ListNode(int val, ListNode next) {this.val = val;this.next = next;}
}

如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值。

我的尝试

请注意这段代码是错的,请勿参考

错误分析:
① 题目 “你可以选择使用单链表或者双链表,设计并实现自己的链表。” 是使用力扣官方给的单链表和双链表,然后设计实现自己的链表MyLinkedList 。单链表为 ListNode。
② MyLinkedList 中使用 ListNode类。
③ 添加一个变量 size,记录 MyLinkedList 中节点的个数。
④ 【问题】java中 this 指针可以更改指向吗?
MyLinkedList myLinkedList; myLinkedList.addAtHead(1); 这样是没法调用的,会报错,《might not have been initialized》
⑥ 下文代码中的 this==null 也是多余的,IDEA上说《Condition ‘this == null’ is always ‘false’》。我分析是因为this是 java虚拟机给每个对象分配的,代表当前对象。而对象一定是需要在堆中new出来的。如果只是MyLinkedList myLinkedList; 其实这个变量只是在栈中定义,堆中并没有对象。
⑦ 虚拟头节点/哑节点/dummy head,是为了方便增删。
⑧ 力扣中定义的class是可以加属性的。

//代码是错的,请勿参考。
class MyLinkedList {int val;MyLinkedList next;public MyLinkedList() {this.val = 0;this.next = null;}public int get(int index) {if(index < 0) return -1;//下标无效//this有可能为空吗?int count=0;MyLinkedList h = this;while(h!=null) {if(count == index) {return h.val;}h = h.next;count++;}return -1;}public void addAtHead(int val) {MyLinkedList newhead = new MyLinkedList();newhead.val = val;newhead.next = this;this = newhead;}public void addAtTail(int val) {MyLinkedList newnode = new MyLinkedList();newnode.val = val;newnode.next = null;if(this == null) {this = newnode;} else {MyLinkedList temp = this;while(temp.next != null) {temp = temp.next;}temp.next = newnode;}}public void addAtIndex(int index, int val) {//链表为空:index再合法也没用//index不合法//index超过链表长度//加在中间//加在末尾if(this == null) return;if(index < 0) return;MyLinkedList newnode = new MyLinkedList();newnode.val = val;newnode.next = null;//哑节点MyLinkedList newh = new MyLinkedList();newh.next = this;//tempMyLinkedList temp = newh;//计数int count=0;while(temp.next!=null) {if(count == index) {newnode.next = temp.next.next;temp.next = newnode;return;}count++;temp = temp.next;}if(index == count) {temp.next = newnode;}return;//index超过链表长度}public void deleteAtIndex(int index) {}
}

正确运行的代码(java)

分析:
① get、addAtIndex、 deleteAtIndex中的 for循环查找 index 用的是同一套逻辑,for循环之后,temp所在的位置是 目标为index节点的前一个
② addAtHead、addAtTail 可以合并到addAtIndex中。
③ size这个变量很巧妙得同时考虑到了,链表为空和 index大于链表长度的情况。

class MyLinkedList {int size;ListNode head;//注意这里是单链表节点 ListNode//虚拟头节点public MyLinkedList() {this.size = 0;head = new ListNode(0);//注意这里是单链表节点 ListNode}public int get(int index) {if(index < 0 || index >=size) {return -1;}ListNode temp = this.head;for(int i=0; i<index; i++) {temp = temp.next;}return temp.next.val;//这里}public void addAtHead(int val) {addAtIndex(0,val);}public void addAtTail(int val) {addAtIndex(size,val);}public void addAtIndex(int index, int val) {if(index < 0 || index > size) {return;}//size避免了链表为空,index大于链表长度的情况ListNode node = new ListNode(val);ListNode temp = this.head;for(int i=0; i<index; i++) {temp = temp.next;}node.next = temp.next;temp.next = node;size++;}public void deleteAtIndex(int index) {if(index < 0 || index >= size) {return;}ListNode temp = this.head;for(int i=0; i<index; i++) {temp = temp.next;}temp.next = temp.next.next;size--;//这里}
}class ListNode {int val;ListNode next;//无参public ListNode() {}//有参:1public ListNode(int val) {this.val = val;}//有参:2public ListNode(int val, ListNode next) {this.val = val;this.next = next;}
}

在这里插入图片描述

http://www.shuangfujiaoyu.com/news/3605.html

相关文章:

  • 宁波网站公司哪里好阿里云免费建站
  • 优惠活动制作网站在线客服
  • 郑州做网站建设公司排名百度下载安装官方下载
  • 企业官网网站模板营销网络是什么
  • 移民网站用什么系统做网站好中文域名注册
  • 写出网站开发的基本流程宣传软文范例
  • 厦门网站建站苏州优化seo
  • 网站开发与软件开发软文写作案例
  • 如何做网站内部优化餐饮培训
  • 建设部网站核对编号纯手工seo公司
  • 网页设计表单注册代码seo包年优化平台
  • 网站做好后怎么更新内容网络营销培训班
  • 网站页眉尺寸防城港网站seo
  • wordpress 微言插件最新seo黑帽技术工具软件
  • 免费下载app软件下载安装上海比较大的优化公司
  • 昆明网站建设王道下拉棒网站建设杭州
  • 文登区住房和城乡建设局网站seo教学网seo
  • html做高逼格网站电脑培训
  • python做互金网站网络销售公司怎么运作
  • 网站改版目标重庆森林经典台词 凤梨罐头
  • 如何建网站快捷方式百度识图在线识别
  • 创建网站制作仪表企业kol营销
  • 百度网站提交地址郑州网站排名优化公司
  • 强大的网站seo推广外包企业
  • 海天建设集团网站关键词查询工具软件
  • wordpress视频不全屏播放云优客seo排名公司
  • 网站建设渠道seo实战培训费用
  • 自己做购物网站计算机培训班
  • 网站优化北京南京网络营销服务
  • 自己开发一款聊天软件西安百度关键词优化排名