给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 1.正常思路 剑指offer课本讲的很清楚 1)先由快慢指针得道环里的一个节点 //此函数也可以判断是否含有环 2)由环里的节点推断出节点的个数 3)由快慢指针得到环的入口;让快指针先走k个几点(k是环内节点个数) 2。断链 ...
分类:
其他好文 时间:
2019-08-20 18:33:45
阅读次数:
74
策略模式是指定义一系列的算法,把它们单独封装起来,并且使它们可以互相替换,使得算法可以独立于使用它的客户端而变化,也是说这些算法所完成的功能类型是一样的,对外接口也是一样的,只是不同的策略为引起环境角色环境角色表现出不同的行为。 相比于使用大量的if...else,使用策略模式可以降低复杂度,使得代 ...
分类:
其他好文 时间:
2019-08-18 15:21:50
阅读次数:
68
C++标准库(一)之新语言特性 新语言特性 nullptr被解释为一个void*,不同于NULL被解释为一个int 可以用auto在编译期完成自动推导,不会影响执行期的速度 新的for循环方式: for(decl : coll) { statement } rvalue reference也是一个r ...
分类:
编程语言 时间:
2019-08-10 19:29:25
阅读次数:
87
给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 solution: 思路:对于当前节点而言,如果两棵树都为空,则返回true;如有一颗为空,返回false;如果二者都不为空,且两者值不等,则为false;如果以上都不满足,则说明当 ...
分类:
其他好文 时间:
2019-08-06 11:06:50
阅读次数:
85
输出顺序: 1 3 2 4 5 6 7 15 14 13 12 12 10 9 8 使用两个栈作为辅助容器。打印某一层节点时,把下一层的子节点保存到栈内。如果当前打印的是奇数层,则先保存左子树节点再保存右子树节点到第一个栈内;如果当前打印的是偶数层,则先保存右子树在保存左子树节点到第二个栈内。 ...
分类:
其他好文 时间:
2019-07-29 14:55:14
阅读次数:
135
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。 左值、右值 C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。 ...
分类:
移动开发 时间:
2019-07-28 17:57:02
阅读次数:
143
#include using namespace std; //链表的定义 struct ListNode { int val; ListNode* next; ListNode(int n) :val(n), next(nullptr) {} }; //链表的打印 void printList(L... ...
分类:
其他好文 时间:
2019-07-27 23:42:30
阅读次数:
110
【转】:https://blog.csdn.net/liangjisheng/article/details/67642491 ...
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路 设置两个指针 fast 、slow,fast先走k-1步,然后再一起走; 先走的k-1步中,如果遇到fast=nullptr,说明链表长度小于k-1,就没有倒数第k项,那就直接返回空指针; 当fast走到最后一个结点,slow恰好在倒数第k ...
分类:
其他好文 时间:
2019-07-04 14:32:41
阅读次数:
92