设为首页 加入收藏

TOP

Leetcode_Partition List
2015-07-20 17:18:19 来源: 作者: 【 】 浏览:3
Tags:Leetcode_Partition List

题意为将小于特定值x的所有节点均放在不小于x的节点的前面,而且,不能改变原来节点的前后位置。

思路:设置两个链表,一个用于存放值小于x的节点,一个用于存放值不小于x的节点。

class Solution {
public:
    ListNode *partition(ListNode *head, int x) {
		if(head==nullptr)
			return head;
        ListNode less(-1);
		ListNode *pless=&less;
		ListNode noless(-1);
		ListNode *pnoless=&noless;
		ListNode *p=head;
		while(p!=nullptr)
		{
			if(p->val
  
   val);不可行,局部变量,会随着函数调用的结束而释放内存,导致在主函数中找不到原有内存空间*/
				/*pless->next=new ListNode(p->val);结果正确,但是用了额外的内存,而且很可能会产生内存泄露*/
				pless->next=p;//可行
				pless=pless->next;
			}
			else
			{
				//ListNode temp(p->val);
				//pnoless->next=new ListNode(p->val);
				pnoless->next=p;
				pnoless=pnoless->next;
			}
			p=p->next;
				
		}
		pnoless->next=nullptr;
		pless->next=noless.next;
		return less.next;

    }
};
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 1734 Sightseeing trip (Floy.. 下一篇UVA - 11437 - Triangle Fun (计..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)