Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @interface ListNode: NSObject
- @property (nonatomic) ListNode* next;
- @property (nonatomic) NSNumber *data;
- @end
- @implementation ListNode
- @end
- @interface Solution: NSObject
- -(ListNode *)sortList:(ListNode *)l1 andList:(ListNode *)l2;
- @end
- @implementation Solution
- -(ListNode *)sortList:(ListNode *)l1 andList:(ListNode *)l2 {
- if(l1 == nil) return l2;
- if(l2 == nil) return l1;
- ListNode *sortedTail = [ListNode new];
- ListNode *head = sortedTail;
- while(l1 && l2) {
- if([l1.data compare:l2.data] == NSOrderedAscending) {
- sortedTail.next = l1;
- sortedTail = l1;
- l1 = l1.next;
- } else {
- sortedTail.next = l2;
- sortedTail = l2;
- l2 = l2.next;
- }
- sortedTail.next = nil;
- }
- if(l1) sortedTail.next = l1;
- else sortedTail.next = l2;
- return head.next;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement