有一个链表,它有next以及child属性,每一个child或者next指向的node也有相同的属性,现在问如何遍历所有的node。
算法有几种option,第一种是用额外存储空间,另一种是no extra memory。
昨天和同事讨论了一下,发现这道题目其实可以用递归来做,非常容易,几句话就写好了。当然也有非递归的方法,到时候会写上来。
以下是这道题非递归的算法,但是会用到extra memory,其中定义了一个Stack来存储所有访问过的节点,等到以后来确定是否有child,如果没有,就pop掉再也不管了。等到有空会再写一个不用extra memory的方法
以下是no extra memory的算法,感觉挺怪,似乎是可以优化的
还有一道题目是关于数组,就是有一个二维数组,每下面一行的数据都比上面一行的大,每右边一列的数据总是比左边一列的大。求给出一个N,如何定位到这个二维数组上。
还有一个井字游戏的算法。也是相关于二维数组的。