输入一个链表,翻转链表从N到M个节点。

这是一篇关于如何翻转链表从N到M个节点的博客。给出的思路是通过设定两个指针p和q,分别指向起始和结束节点,然后逐步缩小翻转区间,每次遍历后交换对应节点,直到最后完成翻转。这个方法可能不适用于所有情况,但能解决特定问题。例如,对于链表1->2->3->4->5->6,翻转3到5的节点后,链表将变为1->2->5->4->3->6。
摘要由CSDN通过智能技术生成

输入描述:1,2,3,4,5,6
3,5
输出描述:1,2,5,4,3,6
大体思路:m-n 比如倒置1-7节点,那么就让p指向1 q指向7(遍历一遍)然后交换1和7,之后区间缩小到 2-6 同样让p指向2 q指向6(也是遍历过去)交换 以此类推直到最后m>n结束。

/*typedef struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
		val(x), next(NULL) {
	}
}node;*/
 
class Solution {
   
public:
	node *reverseBetween(node *head, int m, int n
在 Java 中,你可以使用以下代码来实现链表翻转: ``` public class LinkedList { private Node head; private static class Node { private int data; private Node next; private Node(int data) { this.data = data; } } public void addToFront(int data) { Node newNode = new Node(data); newNode.next = head; head = newNode; } public void reverse() { Node current = head; Node previous = null; Node next = null; while (current != null) { next = current.next; current.next = previous; previous = current; current = next; } head = previous; } public void printList() { Node current = head; while (current != null) { System.out.print(current.data + " "); current = current.next; } } public static void main(String[] args) { LinkedList list = new LinkedList(); list.addToFront(1); list.addToFront(2); list.addToFront(3); list.addToFront(4); list.addToFront(5); System.out.println("Original list: "); list.printList(); System.out.println(); list.reverse(); System.out.println("Reversed list: "); list.printList(); } } ``` 这段代码实现了一个单向链表类,包含了一些基本的方法,比如添加节点翻转链表、打印链表链表翻转的具体实现在 `reverse` 方法中,通过循环不断地将当前节点的 next 指针指向前一个节点,最后将头节点更新为原来的尾节点即可实现链表翻转。 运行上面的代码,你会得到如下输出: ``` Original list: 5 4 3 2 1 Reversed list: 1 2 3 4 5 ``` 这就是如何使用 Java 实现链表翻转的基本方法。希望
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值