Java给出代码 带头结点的单链表中元素是否递减,并输出表中元素个数
时间: 2024-03-11 20:47:41 浏览: 90
以下是Java代码实现:
```java
public boolean isDecreasing(ListNode head) {
if (head == null || head.next == null) {
return true;
}
ListNode cur = head.next;
int count = 1;
while (cur.next != null) {
if (cur.next.val >= cur.val) {
return false;
}
cur = cur.next;
count++;
}
System.out.println("表中元素个数为:" + count);
return true;
}
```
其中,`ListNode` 表示单链表节点,包含 `int val` 和 `ListNode next` 两个属性。`head` 是带头结点的单链表头结点,`isDecreasing` 方法用于判断表中元素是否递减,并输出表中元素个数。
该方法通过遍历单链表,依次判断相邻节点的值是否递减,若存在不递减的情况,则返回 `false`,表示表中元素不递减。另外,方法还记录表中元素个数,并在判断完成后输出。
相关问题
Java1.创建带头结点单链表,调用输出函数,输出单链表
可以按照以下步骤创建一个带头结点的单链表,并调用输出函数将其输出。
首先,创建一个节点类Node,包括数据域和指针域。
```java
class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
```
然后,创建一个链表类LinkedList,包含头结点和输出函数。
```java
class LinkedList {
Node head;
public LinkedList() {
this.head = new Node(0); // 创建头结点,默认值为0
}
public void addNode(int data) {
Node newNode = new Node(data);
Node curr = head;
while (curr.next != null) {
curr = curr.next;
}
curr.next = newNode;
}
public void printList() {
Node curr = head.next;
while (curr != null) {
System.out.print(curr.data + " ");
curr = curr.next;
}
System.out.println();
}
}
```
接下来,我们可以创建一个LinkedList对象,并通过addNode方法添加节点数据,最后通过printList方法输出单链表。
```java
public class Main {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.addNode(4);
System.out.println("单链表内容:");
list.printList();
}
}
```
这样就可以创建一个带头结点的单链表,并调用输出函数将其输出。
输出带头结点单链表的所有结点元素值
对于带头结点的单链表,头结点不存储任何元素值,因此只需要遍历头结点的后继结点,输出其元素值即可。代码如下:
```python
def print_linked_list(head):
p = head.next # p指向头结点的后继结点
while p:
print(p.data)
p = p.next
```
其中,`head.next`表示头结点的后继结点,`p = head.next`将p指向头结点的后继结点,`while p:`表示在p不为空的情况下循环,每次循环输出p的元素值,并将p指向下一个结点,即`p = p.next`。
阅读全文