首页 > 编程语言 >卡码java基础课 | 13.链表的基础操作I

卡码java基础课 | 13.链表的基础操作I

时间:2024-03-15 15:44:34浏览次数:20  
标签:卡码 Node 13 currentNode 链表 headNode data public

学习内容:
链表基础

重点归纳:
见例题

例题:


解:

点击查看代码
import java.util.Scanner;

//定义链表
class LinkedList{
    
    //定义链表中的链表节点
    public static class Node{
        int data; //数据
        Node next; //指针
        public Node(int data){ //构造函数
            this.data = data;
            this.next = null;
        }
    }
    
    private Node headNode; //头节点
    private int length; //链表长度
    
    public LinkedList(){ //链表的构造函数
        this.length = 0;
        this.headNode = null;
    }
    
    //插入数据函数
    public Node Insert(int data){
        Node newNode = new Node(data);
        this.length++;
        if(this.headNode == null){
            this.headNode = newNode;
            return this.headNode;
        }
        else{
            Node currentNode = this.headNode;
            while(currentNode.next != null){
                currentNode = currentNode.next;
            }
            currentNode.next = newNode;
            return newNode;
        }

    }
    
    //打印数据
    public void printLinkedList(){
        Node currentNode = this.headNode;
        while(currentNode != null){
            System.out.print(currentNode.data + " ");
            currentNode = currentNode.next;
        }
        System.out.println();
    }
}

public class Main{
    
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        while(sc.hasNext()){
            int n = sc.nextInt();
            LinkedList newLinkList = new LinkedList();
            for(int i = 0; i < n; i++){
                newLinkList.Insert(sc.nextInt());
            }
            newLinkList.printLinkedList();
        }
        
        sc.close();
    }
    
}


标签:卡码,Node,13,currentNode,链表,headNode,data,public
From: https://www.cnblogs.com/cyh-coding/p/18073793

相关文章

  • 代码随想录算法训练营第四十七天| ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家
    打家劫舍 题目链接:198.打家劫舍-力扣(LeetCode)思路:每一家的最大收益来源只有两个,一个是这家不偷,那么最大收益等于从上一家出来的最大收益,另一个是偷这一个家,因此最大收益等于从上上一家出来的最大收益加这一家的收益。classSolution{public:introb(vector<int>&nu......
  • 代码随想录算法训练营第四十七天 | 337.打家劫舍III,213.打家劫舍II ,198.打家劫舍
     198.打家劫舍 已解答中等 相关标签相关企业 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一......
  • Directory Opus 13.4 Crack
    DirectoryOpus是一个具有许多不同功能的文件管理器。该程序旨在取代Windows资源管理器,从而使文件处理更加方便并提供许多新功能。该程序提供了方便的文件管理功能,支持处理档案、访问FTP、处理图形和音乐文件。该程序具有多种设置和附加功能。DirectoryOpus和其他文件管理......
  • 代码随想录算法训练营第七天|LeetCode 344.反转字符串、541.反转字符串II、卡码网54.替
    344.反转字符串题目描述:​编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用O(1)的额外空间解决这一问题。示例一:输入:s=["h","e","l","l","o"]输出:["o","l","l......
  • Django ORM 常用的13个方法
    DjangoORM常用的13个方法介绍一个可以以py脚本方式运行ORM操作的方法:可在项目内新建个py文件,复制项目内manage.py文件中的以下代码:if__name__=="__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE","ORM1.settings")importdjango#手动添加......
  • 代码随想录算法训练营第day46|139.单词拆分 、多重背包
    目录139.单词拆分多重背包 139.单词拆分力扣题目链接(opensnewwindow)给定一个非空字符串s和一个包含非空单词的列表wordDict,判定 s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单......
  • leetcode 2.两数相加 ,链表
    2.两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。 示例1:输入:l1=[2,4......
  • 代码随想录算法训练营第四十六天| 139.单词拆分 多重背包 背包问题总结篇!
    单词拆分 题目链接:139.单词拆分-力扣(LeetCode)思路:竟然真能转化为背包问题。classSolution{public:boolwordBreak(strings,vector<string>&wordDict){unordered_set<string>t(wordDict.begin(),wordDict.end());vector<bool>dp(s.size()+......
  • leetcode.21 合并两个有序链表
     21.合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输......
  • [Ynoi2013] 大学
    非常好之\(\texttt{lxl}\)使我的代码旋转。看到这个题,第一反应显然是如果我们能够每次确切的找到要除的数,然后用树状数组进行单点修改,那么就可以达到\(\mathcal{O}(n\logV\logn)\)的复杂度。那么接下来就是考虑如何去找到能除的数。首先,我们不难想到对于每个权值\(v\)......