Objective-C实现链表逆转(附完整源码)

Objective-C实现链表逆转


下面是一个使用 Objective-C 实现链表逆转的完整源码示例。我们将定义一个简单的链表节点类,并实现一个方法来逆转链表。

链表节点类

#import <Foundation/Foundation.h>

@interface ListNode : NSObject

@property (nonatomic, assign) NSInteger value;
以下是Java实现链表逆转的示例代码: ```java public class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; } } public class LinkedListReverse { public ListNode reverse(ListNode head) { ListNode prev = null; while (head != null) { ListNode next = head.next; head.next = prev; prev = head; head = next; } return prev; } } ``` 上述代码中,`ListNode`表示链表节点,包含一个整数值`val`和指向下一个节点的指针`next`。`LinkedListReverse`类包含一个`reverse`方法,用于将给定链表逆转。 `reverse`方法使用三个指针`prev`、`head`和`next`。首先将`prev`指向空节点,然后循环遍历链表,每次将`head`的下一个节点指针`next`保存下来,然后将`head`的下一个节点指向`prev`,再将`prev`指向`head`,最后将`head`指向之前保存的`next`。当循环结束后,`prev`指向逆转后的链表头节点,返回`prev`即可。 可以使用以下代码来测试链表逆转: ```java public static void main(String[] args) { ListNode head = new ListNode(1); head.next = new ListNode(2); head.next.next = new ListNode(3); head.next.next.next = new ListNode(4); head.next.next.next.next = new ListNode(5); LinkedListReverse solution = new LinkedListReverse(); ListNode reversed = solution.reverse(head); while (reversed != null) { System.out.print(reversed.val + " "); reversed = reversed.next; } } ``` 此代码将创建一个包含五个节点的链表,然后将链表逆转并输出逆转后的结果。输出结果为`5 4 3 2 1`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源代码大师

赏点狗粮吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值