java 马克思_单链表-Java

public class SinglyListNode {

int val;

SinglyListNode next;

SinglyListNode() {

}

SinglyListNode(int x) {

this.val = x;

}

}

/*执行用时:

12 ms

, 在所有 Java 提交中击败了

66.93%

的用户

内存消耗:

39.5 MB

, 在所有 Java 提交中击败了

5.06%

的用户

*/

class MyLinkedList {

int size; // 0 -- n

//SinglyListNode head = new SinglyListNode(); // 此种写法错误,链表遍历时最后会输出0

SinglyListNode head = null;

/** Initialize your data structure here. */

public MyLinkedList() {

}

/*public int length() {

int length = 0;

SinglyListNode p = head;

while (p != null) {

length ++;

p = p.next;

}

return length;

}*/

/** Get the value of the index-th node in the linked list. If the index is invalid, return -1. */

public int get(int index) {

if (index < 0 || index >= size) {

return -1;

}

SinglyListNode p;

p = head;

if (index != 0) {

for (int i = 0; i < index; i++) {

p = p.next;

}

}

return p.val;

}

/** Add a node of value val before the first element of the linked list. After the insertion, the new node will be the first node of the linked list. */

public void addAtHead(int val) {

SinglyListNode listNode = new SinglyListNode(val); // 创建加入的节结点

if (head != null) {

listNode.next = head;// 新节点的指针域指向当前链表的头节点

}

head = listNode; // 将插入的节点作为新的头节点

size ++;

}

/** Append a node of value val to the last element of the linked list. */

public void addAtTail(int val) {

SinglyListNode listNode = new SinglyListNode(val);

if(head == null) {

head = listNode;

size ++;

// listNode.next = null; // 冗余

return;

}

SinglyListNode p = head;

/*while (p != null) {

if (p.next == null) {

p.next = listNode;

listNode.next = null;

p = null; //循环终止条件

}else {

p = p.next;

}

}*/

while (p.next != null) {

p = p.next; // 遍历到尾节点位置

}

p.next =listNode;

size ++;

}

/** Add a node of value val before the index-th node in the linked list. If index equals to the length of linked list, the node will be appended to the end of linked list. If index is greater than the length, the node will not be inserted. */

public void addAtIndex(int index, int val) {

if (index == size) {

addAtTail(val);

return;

}

if (index <= 0) {

addAtHead(val);

return;

}

if (index > size - 1) {

return;

}

SinglyListNode listNode = new SinglyListNode(val);

SinglyListNode p = head;

// 遍历到节点要插入位置的前一个位置

while (index - 1 > 0) {

p = p.next;

index --;

}

listNode.next = p.next;

p.next = listNode;

size ++;

}

/** Delete the index-th node in the linked list, if the index is valid. */

public void deleteAtIndex(int index) {

if (index < 0 || index >= size) {

return;

}

if (index == 0) {

head = head.next;

size --;

return;

}

SinglyListNode p = head;

SinglyListNode tempNode;

while (index - 1 > 0) {

p = p.next;

index --;

}

tempNode = p.next.next;

p.next = tempNode;

size --;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的pass语句_Python | 演示pass语句的示例

python的pass语句python中的pass语句 (pass statement in python) "pass" is a type of null operation or null statement, when it executes nothing happens. It is used when you want do not want to write any code/statement to execute but syntactically a …

HDS:聚焦未来的投资“冻结”

一家日本IT网站报道的有关HDS冻结对高端存储产品的投资一事引发众议。让人陷入疑惑的这次声明就是&#xff0c;HDS认为单纯的阵列产品并非企业存储的未来。 6月1日&#xff0c;IT Pro Nikkei网站发布了一篇报道&#xff0c;内容援引HDS一份表示将冻结高端存储业务的简报。这引发…

java js对象转字符串数组_JS数组转字符串(3种方法)【转】

JavaScript 允许数组与字符串之间相互转换。其中 Array 方法对象定义了 3 个方法&#xff0c;可以把数组转换为字符串&#xff0c;如表所示。数组方法说明toString()将数组转换成一个字符串toLocalString()把数组转换成本地约定的字符串join()将数组元素连接起来以构建一个字符…

中美共建大数据创新研究中心

由贵阳市人民政府、工信部电子一所、美国加州大学伯克利分校合作共建的贵州伯克利大数据创新研究中心日前在贵阳揭牌。 据了解&#xff0c;贵州伯克利大数据创新研究中心将分两阶段建设。第一阶段&#xff0c;2016年9月份至2017年底&#xff0c;将重点完成“学龄儿童大数据分析…

Python中的__init__和self是做什么的?

The __init__ and self are two keywords in python, which performs a vital role in the application. __init__和self是python中的两个关键字&#xff0c;在应用程序中起着至关重要的作用。 To begin with, it is important to understand the concept of class and object…

Palo Alto Networks漏洞防护扩展至云端

中国北京&#xff0c;2016年4月12日 –下一代安全企业Palo Alto Networks?(纽交所代码&#xff1a;PANW)近日宣布进一步增强其下一代安全平台&#xff0c;扩展漏洞防护能力&#xff0c;以满足那些依赖云环境和SaaS应用的业务对安全的需求。 企业机构需要变得更加灵活和有竞争力…

java 嵌套调用_Java嵌套类的使用

嵌套类是指被定义在另一个类内部的类&#xff0c;它为外部类提供服务。嵌套类分四种&#xff1a;静态成员类、非静态成员类、匿名类和局部类。一、静态成员类与非静态成员类的区别&#xff1f;在什么情况下可以用静态成员类&#xff1f;我们知道在类的设计中&#xff0c;为了避…

c语言getenv函数_getenv()函数与C ++中的示例

c语言getenv函数C getenv()函数 (C getenv() function) getenv() function is a library function of cstdlib header. It is used to get the environment string. It accepts a parameter which is an environment variable name (platform dependent, it may either case s…

isless()函数与C ++中的示例

C isless()函数 (C isless() function) isless() function is a library function of cmath header, it is used to check whether the given first value is less than the second value. It accepts two values (float, double or long double) and returns 1 if the first …

停牌17个月 汉能薄膜真的要复牌了?

最近&#xff0c;停牌超过一年的汉能薄膜又有新进展。 10月7日&#xff0c;路透社引述知情人士的消息称&#xff0c;香港证监会或将允许汉能薄膜发电复牌&#xff0c;不过复牌的前提是需汉能将符合一些特定条件。 该消息人士透露&#xff0c;证监会告知汉能&#xff0c;若要恢复…

hive java udf_UDF_Hive教程_田守枝Java技术博客

UDF是User-Defined Functions(用户定义函数)的简称。通过以下命令可以查看HIVE中函数的相关文档&#xff1a;SHOW FUNCTIONS;DESCRIBE FUNCTION ;DESCRIBE FUNCTION EXTENDED ;1、UDF函数可以直接应用于select语句&#xff0c;对查询结构做格式化处理后&#xff0c;再输出内容。…

python 示例_带有示例的Python列表remove()方法

python 示例列出remove()方法 (List remove() Method) remove() method is used to remove the first occurrence of the given element, the method is called with this list (the list from which we have to remove the element) and accepts the element to be removed as…

车联网领域,传统TSP企业做错了什么 ?

当下&#xff0c;车联网的定义更加丰富和宽泛&#xff0c;除了传统意义上的Telematics服务&#xff0c;数字服务、移动出行服务、电商平台等将被融入到车联网概念中&#xff0c;与用车相关的维修保养、洗车、代驾等第三方服务&#xff0c;也将成为整车厂整合的重点被纳入到车联…

gettimeofday_PHP gettimeofday()函数与示例

gettimeofdayPHP gettimeofday()函数 (PHP gettimeofday() function) gettimeofday() function is used to get the current time. gettimeofday()函数用于获取当前时间。 Syntax: 句法&#xff1a; gettimeofday(return_float);Parameter(s): 参数&#xff1a; return_floa…

Shell脚本/bin/bash^M: bad interpreter错误解决方法

2019独角兽企业重金招聘Python工程师标准>>> 在windows下保存了一个脚本文件&#xff0c;用ssh上传到centos&#xff0c;添加权限执行nginx提示没有那个文件或目录。 shell脚本放到/etc/init.d/目录下&#xff0c;再执行/etc/init.d/nginx&#xff0c;提示多了这句/…

java中map的遍历方法_Java中Map的三种遍历方式

集合中的三种遍历方式&#xff0c;如下代码&#xff1a;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class TestMap {public static void main(String[] arg…

uuid hashcode_Java UUID hashCode()方法与示例

uuid hashcodeUUID类hashCode()方法 (UUID Class hashCode() method) hashCode() method is available in java.util package. hashCode()方法在java.util包中可用。 hashCode() method is used to retrieve the hash code for this UUID. hashCode()方法用于检索此UUID的哈希码…

java如何遍历combobox_如何通过COMBOBOX设置Java中的框架标题?

我想创建类似下图的内容,当用户从组合框选项中选择年份、月份和日期时,这些操作将更改标题,并且必须根据所选数据进行更改,这很简单,我还是新手到目前为止,我已经做到了,问题是它不起作用,我怎么能做到呢?,你能帮我一下吗?import java.awt.GridLayout;import java.awt.event.…

为什么公司要努力发展数字化战略

发现自身数字化滞后的公司正在遭受因为在二十年前所做的战略决策的煎熬。这里我们将阐述如何才能迎头赶上。 发展数字化战略的公司正在努力促进转型&#xff0c;因为大多数首席信息官(CIO)还没有能力成为数字化领导者。根据Caldwell Partners公司的技术、数字和数据领导事务的管…

java scanner_Java Scanner radix()方法与示例

java scanner扫描器类radix()方法 (Scanner Class radix() method) radix() method is available in java.util package. radix()方法在java.util包中可用。 radix() method is used to return the default or implicit radix of this Scanner. radix()方法用于返回此Scanner的…