Java数据结构学习DAY3——链表练习(1)

已知一条链表,不知道其长度的情况下:通过遍历,打印链表的每个元素。通过遍历,找到链表的最后一个结点。通过遍历,找到链表的倒数第二个结点。通过遍历,找到链表的第 n 个结点。(链表的长度 >= n)通过遍历,计算链表中元素的个数。通过遍历,找到链表中是否包含某个元素。

  • 代码

Main类

package Java41_0202;

public class Main {

    //通过这个方法创建出一个固定内容的链表
    //用头结点代替整个链表
    //让方法把头结点返回去
    public static Node creatList() {
        Node a = new Node(1);
        Node b = new Node(2);
        Node c = new Node(3);
        Node d = new Node(4);
        a.next = b;
        b.next = c;
        c.next = d;
        d.next = null;
        return a;
    }

    public static void main(String[] args) {
        Node head = creatList();

        //1.链表遍历
//        for (Node cur = head; cur != null; cur = cur.next) {
//            System.out.println(cur.val);
//        }

        //2.遍历链表,并找到最后一个节点
//        Node cur = head;
//        while(cur != null && cur.next != null) {
//            cur = cur.next;
//        }
//        //此时循环结束,则 cur 指向了最后一个节点
//        System.out.println(cur.val);
//    }

        //3.遍历链表,并找到倒数第二个节点
        //特点是它的 .next.next 为 null
//        Node cur = head;
//        while (cur != null && cur.next != null && cur.next.next != null) {
//            cur = cur.next;
//        }
//        System.out.println(cur.val);

        //4. 取链表的第 N 个节点(从 1 开始算的)
//        int N = 3;
//        Node cur = head;
//        for(int i = 1; i < N; i++) {
//            cur = cur.next;
//        }
//        //此时 cur 指向的元素,就是正数第 N 个元素
//        System.out.println(cur.val);

        //5.获取链表的长度
        //每次遍历一个元素就 count++ 一次
        int count = 0;
        for (Node cur = head; cur != null; cur = cur.next) {
            count++;
        }
        System.out.println(count);

        //6.查找链表是否存在某个元素
//        int toFind = 3;
//        Node cur = head;
//        for (; cur != null; cur = cur.next) {
//            if (cur.val == toFind) {
//                break;
//            }
//        }
//        if (cur != null) {
//            System.out.println("找到了");
//        } else {
//            System.out.println("没找到");
//        }
    }
}

Node 类

package Java41_0202;

//使用 Node 表示节点
public class Node {
    public int val;
    public Node next = null;

    public Node(int val) {
        this.val = val;

    }

}

  • 结果

1.链表遍历
在这里插入图片描述
2.遍历链表,并找到最后一个节点
在这里插入图片描述
3.遍历链表,并找到倒数第二个节点
在这里插入图片描述
4.取链表的第 N 个节点(从 1 开始算的)
在这里插入图片描述
5.获取链表的长度
在这里插入图片描述
6.查找链表是否存在某个元素
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值