public TreeNode sortedListToBST(ListNode head) {
if (head == null)
return null;
int len = 0;
ListNode nextNode = head;
while (nextNode != null) {
nextNode = nextNode.next;
len++;
}
return buildTree(head, 0, len - 1);
}
public Tree...
分类:
其他好文 时间:
2014-12-16 21:05:05
阅读次数:
159
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *...
分类:
其他好文 时间:
2014-12-16 20:53:13
阅读次数:
213
解析:设立两个指针,p每次移动两下,q每次只移动一下,那么当p指向最后一个节点的时候,那么q就是中间的节点了
ListNode* FindMidNode(ListNode* pHead)
{
if (pHead == NULL)
{
return NULL;
}
if (pHead->m_pNext == NULL || pHead->m_pNext->m_pNext =...
分类:
编程语言 时间:
2014-12-16 17:13:52
阅读次数:
181
如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。
bool IsCycleList(ListNode* pHead)
{
if(pHead== NULL)
return false;
if (pHead->m_pNext == NULL)
{
return false;
}
ListNode* pFastNod...
分类:
编程语言 时间:
2014-12-16 17:13:12
阅读次数:
154
如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。bool IsCycleList(ListNode* pHead){ if(pHead== NULL) return false; if (pHead->m_pNext == NULL) { retur...
分类:
编程语言 时间:
2014-12-16 13:16:36
阅读次数:
143
解析:设立两个指针,p每次移动两下,q每次只移动一下,那么当p指向最后一个节点的时候,那么q就是中间的节点了ListNode* FindMidNode(ListNode* pHead){ if (pHead == NULL) { return NULL; } if (pHead->m_pNext ....
分类:
编程语言 时间:
2014-12-16 13:08:52
阅读次数:
202
链表的倒转,
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
/**
* Definition for singly-link...
分类:
其他好文 时间:
2014-12-14 00:46:14
阅读次数:
193
给定一个链表,如果有环,返回环的起点,如果没环,则返回空指针。法一:unordered_set存做过的节点,一旦出现重复,那么它就是起点了。O(n)空间/** * Definition for singly-linked list. * struct ListNode { * int val...
分类:
其他好文 时间:
2014-12-13 16:27:02
阅读次数:
222
判断链表中有没有环。一个指针跑一次,一个指针跑两次,相遇就是有环/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x...
分类:
其他好文 时间:
2014-12-12 22:11:59
阅读次数:
162
题目:给定一个头结点,倒叙输出一个链表
解法1:先将链表反转,在遍历输出
解法2:不修改链表自身的结构,动态申请一段空间,申请一个指针数组,数组内存放的指针指向链表的每个值,再遍历数组输出:
void PrintListBack(ListNode* head)
{
int n = GetLength(head);
ListNode** p = new ListNode*[n+...
分类:
编程语言 时间:
2014-12-12 16:48:03
阅读次数:
203