Definition for singly-linked list.

public class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}

(图片来自https://www.cnblogs.com/ysocean/p/7928988.html)

  • 生成新的ListNode:
ListNode a = new ListNode(int x);

这里的int x 为首节点的值,也可以为任何值,因为一般情况下我们不会用到单链表的首节点,它只是作为一个启动的功能。

  • 填加节点

通常想要在首尾填加节点的话很简单。如果是开头,可以创建一个新的首节点并赋予它首节点的值,接着把next引向原链表即可。末尾填加值只需要直接next = 要加入的链表或创建新节点。下面是简单的示例:

// 开头填加
NodeList a;  // 原链表
NodeList b = new NodeList(int x); // x想要填加的初始值
b.next = a;  // 连接原链表
a = b;//  结尾填加
NodeList a;
a.next = new NodeList(int x);

中间填加需要把链表断开插入新值再重新连接

注意点

  1. 链表的可以使用栈(stack)的push() 和pop()方法来寄存和取出,通常用于翻转链表
  2. 链表算法题返回时一般应返回值会从链表指向的那个值开始返回,而且每个实例变量的指向是不同的。例如:
ListNode a;  // 假设它的值为 1,2,3,4,5
ListNode b = a;
ListNode c = a;
a = a.next;
c = c.next.next;
return a;  // 返回值为2,3,4,5
return b;  // 返回值为1,2,3,4,5
return c;  // 返回值为3,4,5

所以我们一般会创建一个新的NodeList作return对象用

Java 刷题笔记——singly ListNode相关推荐

  1. 牛客网java刷题笔记2019-1-4

    牛客网java刷题笔记 2019-1-4 1.java中可以用类中构造器调用其他类构造器(这个和C++中构造函数很类似)用于初始化程序变量值, 构造器和方法的区别: 功能和作用的不同 构造器是为了创建 ...

  2. LeetCode Java刷题笔记—876. 链表的中间结点

    876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点. 简单难度.使用快慢指针即可,快指针fast每次走2步,慢指针slow ...

  3. 【Java刷题笔记】牛客网Java入门 1~4

    1~4 类型转换 描述 输入描述: 输出描述: 示例1 示例2 内心想法: 代码实现: 收获: 简单运算 描述 输入描述: 输出描述: 示例1 内心想法: 代码实现: 收获: 四舍五入 描述 输入描述 ...

  4. LeetCode Java刷题笔记—297. 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 请实现两个函数,分别用来序列化和反序列化二叉树.这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化 ...

  5. java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现)

    leetcode刷题笔记-114. 二叉树展开为链表(java实现) 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 rig ...

  6. leetcode刷题java、c++、go语言三合一版本 谷歌师兄的刷题笔记、东哥的算法小抄、 Guide哥的Java面试突击版

    不久前火爆 GitHub 的 LeetCode 中文刷题手册,分享给大家,让正在找工作的朋友能够快速找到心仪的offer! <LeetCode Cookbook>目前已经收录了 520 道 ...

  7. 《编程能力基础》刷题笔记(41 题)

    <编程能力基础>刷题笔记 1. 单调数列 题解:递归.模拟.API 2. 实现 strStr() 题解:API.暴力.滑动窗口 3. 平衡二叉树 题解:迭代 4. 重复的子字符串 题解:模 ...

  8. LeetCode《编程能力入门》刷题笔记(34 题全)

    LeetCode<编程能力入门>刷题笔记 基本数据类型 1. 在区间范围内统计奇数数目 _解法1:暴力迭代 _解法2:数学(找规律) 2. 去掉最低工资和最高工资后的工资平均值 _解法1: ...

  9. 《剑指 Offer I》刷题笔记 20 ~ 30 题

    <剑指 Offer I>刷题笔记 20_30 动态规划(简单) 20. 斐波那契数列 _解法1:迭代 解法2:记忆化递归 解法3:动态规划 21. 青蛙跳台阶问题 _解法1:动态规划 22 ...

最新文章

  1. hbase参数配置及优化
  2. Lammps命令与in文件
  3. C# 【无法修改XX返回值,因为它不是变量】
  4. Spring 自定义注解使用案例 首先创建一个注解@interface
  5. 这篇 CPU Cache,估计要消化一下
  6. AMQP 和 RabbitMQ 入门
  7. Hi3798M V200 SDK文档介绍
  8. CodeM资格赛 Round A 最长树链
  9. 快速完成单片机毕业设计方法
  10. 软件开发模式有哪些?
  11. comsol如何定义狄利克雷边界_comsol边界条件怎么设置
  12. c语言eval函数,百行代码轻便实现C#中的Eval函数
  13. 什么是云数据库?这篇文章详细告诉你!
  14. IDEA包下不能建包问题
  15. 全面解析软文营销中的八大技巧
  16. 粉丝测试题的软件,套路得粉丝的答题类H5推荐
  17. 想要改变世界的 Rust 语言
  18. repos install.packages()安装镜像
  19. grep -w和grep -e使用
  20. live555 日志

热门文章

  1. kingroot pc版 v3.2.0.1129官方电脑版
  2. 浪潮服务器进驻科大讯飞 语音输入法识别更快更精准
  3. ECSHOP支付插件开发(银生宝支付)
  4. Van der Waerden 定理
  5. 【181118】VC++ 自由绘制曲线图像实例源代码
  6. 2015的网页设计趋势
  7. 阿里通网络电话,中国最优秀的网络电话- 福建,福州,厦门,漳州,泉州,南平,三明,龙岩,宁德...
  8. 2020年人生目标 随笔记录
  9. 盘点世界科技强国的人工智能+智能制造战略部署
  10. html恋爱页面,HTML5表白网页, 我们的爱情