JAVA描写链表的逆序打印
时间: 2023-05-11 14:02:33 浏览: 74
可以使用栈来实现链表的逆序打印,具体实现如下:
```java
public static void printListReversingly(ListNode head) {
if (head == null) {
return;
}
Stack<ListNode> stack = new Stack<>();
while (head != null) {
stack.push(head);
head = head.next;
}
while (!stack.isEmpty()) {
System.out.print(stack.pop().val + " ");
}
}
```
其中,ListNode 是链表节点的定义,val 表示节点的值,next 表示下一个节点的指针。
相关问题
链表的逆序打印Java递归算法
可以使用递归算法来实现链表的逆序打印,具体实现如下:
```
public void printListReversingly(ListNode head) {
if (head != null) {
if (head.next != null) {
printListReversingly(head.next);
}
System.out.print(head.val + " ");
}
}
```
其中,ListNode 是链表节点的定义,val 表示节点的值,next 表示指向下一个节点的指针。该算法的思路是先递归到链表的最后一个节点,然后从后往前依次打印节点的值。
注意,该算法的时间复杂度为 O(n),空间复杂度为 O(n),其中 n 表示链表的长度。
双向链表逆序遍历java
双向链表逆序遍历可以利用链表的prev指针,从链表的尾部开始遍历,直到遍历到链表的头部。下面是Java代码实现:
```
public void reverseDisplay() {
ListNode cur = this.last;
while(cur != null) {
System.out.print(cur.val + " ");
cur = cur.prev;
}
}
```
该方法中,我们从链表的尾部开始遍历,每次输出当前节点的值,并将当前节点指向前一个节点,直到遍历到链表的头部为止。