单链表反转:1->2->3->4...
思路:先将1指向3,2指向1,结果为2->1->3->4,然后循环将3插入到2之前
void reverseLinkedList(List head)
{
List tmp,p;
if(head==null)
{
return ;
}
tmp=head->next;
while(tmp->next !=null){
p=tmp->next...
分类:
其他好文 时间:
2014-09-29 17:58:28
阅读次数:
175
最近一直在找工作,昨天参加了网易游戏的研发类笔试,题量比较大,大题有6个。1.最小字典序字符串,2.递归绘图函数转非递归3.游戏编程中常用的数据结构4叉树,有三问,一问是写出如何判断点在矩形中和判断两矩形是否相交,第二问是写创建四叉树的实现,第三问是如何根据已知的矩形块,在四叉树中寻找包含的物体。4...
分类:
其他好文 时间:
2014-09-28 17:30:13
阅读次数:
199
第一种方法是Morris Traversal
是O(n)时间复杂度,且不需要额外空间的方法。缺点是需要修改树。
通过将叶子节点的right指向其中序后继。
代码如下
vector inorderTraversal(TreeNode *root) {
vector res;
TreeNode * cur = root;
TreeNode...
分类:
其他好文 时间:
2014-09-27 22:46:50
阅读次数:
195
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三...
分类:
其他好文 时间:
2014-09-27 20:33:10
阅读次数:
174
这里实现了二叉树的先序遍历、中序遍历、后序遍历的递归和非递归两种形式的遍历以及对二叉树的层次遍历。
很基础,适合数据结构初学者参考。...
分类:
其他好文 时间:
2014-09-25 17:21:49
阅读次数:
223
快排的原理是,让一个数作为中间值A,使得左边的数都小于(大于)等于A,右边的数都大于(小于)A。 1 public static void quickSort(Integer[] arrayList,int begin,int end){2 if(begin>=end)...
分类:
其他好文 时间:
2014-09-25 16:16:49
阅读次数:
140
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,...
分类:
其他好文 时间:
2014-09-25 09:04:08
阅读次数:
203
题目:Given a binary tree, return the preorder traversal
of its nodes' values.
此题即为二叉树的前序遍历,递归的方法很简单:先节点再左子树再右子树;迭代的方法可以利用栈存储来完成遍历过程。
补充递归与迭代的区别:许多问题是以递归的形式进行解释的,这只是因为它比非递归形式更为清晰。但是,这些问题的迭代往往比递归实现效率更...
分类:
其他好文 时间:
2014-09-24 11:24:56
阅读次数:
206
算法网上很多,这里只是我手写的可执行的代码,备份用。#include<iostream>
#include<vector>
#include<queue>
usingnamespacestd;
structnode{
charelement;
structnode*left;
structnode*right;
//structnode*parent;
node(chara){
element=a;
}..
分类:
其他好文 时间:
2014-09-22 12:28:43
阅读次数:
229