博客
关于我
Objective-C实现单向链表的反转(附完整源码)
阅读量:792 次
发布时间:2023-02-20

本文共 1057 字,大约阅读时间需要 3 分钟。

Objective-C实现单向链表的反转

以下是Objective-C中实现单向链表反转的完整代码示例:

importing necessary headers

#import <Foundation/Foundation.h>

@interface Node : NSObject@property (nonatomic, strong) id data;@property (nonatomic, strong) Node *next;@end

@implementation Node

// Node类的初始化方法-(id)initWithData:(id)data {self = [Node new];self.data = data;self.next = nil;return self;}

// 反转链表的方法-(Node * )reverseLinkList {Node * originalHead = self;Node * reversedHead = nil;Node * current = self;

while (current != nil) {    // 记录当前节点的下一个节点    Node * nextNode = current.next;        // 将当前节点的下一个节点反转到前面    if (reversedHead == nil) {        // 当前节点是链表的最后一个节点,直接将其连接到反转后的链表        reversedHead = [Node initWithData:current.data];        reversedHead.next = nil;    } else {        // 创建一个新的节点,存储当前节点的数据        Node * newNode = [Node initWithData:current.data];        newNode.next = reversedHead;        reversedHead = newNode;    }        // 更新当前节点为下一个节点    current = nextNode;}return reversedHead;

}

@end

以上代码实现了单向链表的反转逻辑。通过递归或迭代的方式,可以将链表从尾到头遍历,并将节点依次连接到反转链表的前面。这种方法时间复杂度为O(n),空间复杂度为O(1)。

转载地址:http://vnifk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现判断字符串是否回文palindrome算法(附完整源码)
查看>>
Objective-C实现判断数是否为质数(附完整源码)
查看>>
Objective-C实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码)
查看>>
Objective-C实现判断是否为回文字符串(附完整源码)
查看>>
Objective-C实现判断是否为回文数算法(附完整源码)
查看>>
Objective-C实现判断正整数n的d进制数表示形式是否是回文数(附完整源码)
查看>>
Objective-C实现判断闰年(附完整源码)
查看>>
Objective-C实现利用stack对输入的式子进行计算算法(附完整源码)
查看>>
Objective-C实现前缀Knuth–Morris–Pratt 算法(附完整源码)
查看>>
Objective-C实现加密哈希SHA-1 算法(附完整源码)
查看>>
Objective-C实现动态规划之棒材切割算法(附完整源码)
查看>>
Objective-C实现勒让德多项式(附完整源码)
查看>>
Objective-C实现区域生长法(附完整源码)
查看>>
Objective-C实现十六进制转二进制算法(附完整源码)
查看>>
Objective-C实现十六进制转十进制算法(附完整源码)
查看>>
Objective-C实现十进制转N进制算法(附完整源码)
查看>>
Objective-C实现十进制转二进制(附完整源码)
查看>>
Objective-C实现十进制转八进制算法(附完整源码)
查看>>
Objective-C实现华氏温度转摄氏温度(附完整源码)
查看>>
Objective-C实现单例模式(附完整源码)
查看>>