1.冒泡排序
(1)第一次比较:比较第一个和第二个数,把小数放在前面,大数放在后面
(2)比较第2和第3个数,小数放在前面,大数放在后面。
(3)如此继续直到结束一轮比较,数组最后一个数一定是最大的数。
(4)第二轮比较后数组倒数第二数字就是第二大的数,以此类推。
2.c++
for循环初始不能定义多个变量,只能定义一个
3.
ListNode*pT = pListHead, ListNode*p2 = pListHead;(错误)
ListNode*pT = pListHead, *p2 = pListHead;(正确)
4.
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(!pHead||pHead->next==NULL) return pHead;
ListNode* head = ReverseList(pHead->next);
pHead->next->next = pHead;
pHead->next = NULL;
return head;
}
};
递归的方法非常巧,它利用递归走到链表的末端,然后再更新每一个node的next 值 ,实现链表的反转。而newhead 的值没有发生改变,为该链表的最后一个结点,所以,反转后,我们可以得到新链表的head。
ps:碰到复杂的问题不要因为麻烦而乱了思路,一步一步的想清楚,不能乱了,欲速则不达。