摘要: 递归方法 C++代码: 阅读全文
posted @ 2019-01-29 23:22 Joel_Wang 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 前序遍历的递归解法: 方法一C++: 前序遍历的非递归方法: 前序遍历和层序遍历的迭代写法很相似,因此也较为简单。 前序遍历采用stack,当栈顶元素p非空,前序遍历先访问栈顶元素并pop(),然后依次压入右孩子和左孩子。 层序遍历采用queue, 当队首元素p非空,层序遍历先访问队首元素并pop( 阅读全文
posted @ 2019-01-29 23:19 Joel_Wang 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 递归算法C++代码: 非递归方法(迭代):通过stack容器 C++代码:O(n)空间复杂度,O(n)时间复杂度 自己写的,实际上为将递归方法代码用stack具体化,需要注意的是加上了回溯与向下递归的判别; 别人的代码: 方法三:Morris Traversal 由于需要用到Thread Binar 阅读全文
posted @ 2019-01-29 09:21 Joel_Wang 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 相似题目: 102 103 107 其实这个解答只是reverse 了一下,算是投机取巧吧,之后写个从叶节点遍历的。 阅读全文
posted @ 2019-01-29 01:10 Joel_Wang 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 与102相比就增加了flag,用以确定要不要进行reverse操作 reverse:STL公共函数,对于一个有序容器的元素reverse ( s.begin(),s.end() )可以使得容器s的元素顺序反转; C++代码: 相似: 102 103 107 阅读全文
posted @ 2019-01-29 01:04 Joel_Wang 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 基础为用队列实现二叉树的层序遍历,本题变体是分别存储某一层的元素,那么只要知道,每一层的元素都是上一层的子元素,那么只要在while循环里面加个for循环,将当前队列的值(即本层元素)全部访问后再执行下一个循环就可以了。 C++代码: 阅读全文
posted @ 2019-01-29 00:50 Joel_Wang 阅读(167) 评论(0) 推荐(0) 编辑