链表的基础操作(1)
已知一条链表,不知道其长度的情况下,进行以下操作:
通过遍历,打印链表的每个元素
/遍历链表,打印链表的每个元素
public static void printLinkedList(Node a) {
for (Node cur = a; cur != null; cur = cur.next) {
System.out.println(cur.val);
}
}
通过遍历,找到链表的最后一个结点
//遍历链表,找到链表的最后一个节点
public static void printLastNode(Node a) {
Node cur = a;
while (cur != null && cur.next != null) {
cur = cur.next;
}
System.out.println(cur.val);
}
通过遍历,找到链表的倒数第二个结点
//遍历链表,找到链表的倒数第二个节点
public static void printLastSecNode(Node a) {
if (a == null) {
return ;
}
Node cur = a;
while (cur != null && cur.next != null && cur.next.next != null) {
cur = cur.next;
}
System.out.println(cur.val);
}
通过遍历,找到链表的第 n 个结点。(链表的长度 >= n)
//取链表的第N个节点,(从1开始算)
public static void getN(Node a) {
if (a == null) {
return;
}
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要取的第几个节点");
int N=scanner.nextInt();
Node cur = a;
for (int i = 1; i < N; i++) {
cur = cur.next;
}
System.out.println(cur.val);
}
通过遍历,计算链表中元素的个数
//获取链表的长度
public static void getSize(Node a) {
if (a == null) {
return ;
}
int couunt = 0;
for (Node cur = a; cur != null; cur = cur.next) {
couunt++;
}
System.out.print(couunt);
}
通过遍历,找到链表中是否包含某个元素
//遍历链表,查找链表上是否存在某个元素
public static boolean find(Node a) {
if (a == null) {
return false;
}
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你要查找的值 ");
int n = scanner.nextInt();
for (Node cur = a; cur != null; cur = cur.next) {
if (cur.val == n) {
return true;
}
}
return false;
}