锁定老帖子 主题:某互联网公司面试题(二)
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-07
这是百度的题
|
|
返回顶楼 | |
发表时间:2011-06-07
唉
完全看不懂啊 学习学习啊 |
|
返回顶楼 | |
发表时间:2011-06-07
别去百度浪费大好青春。。。
|
|
返回顶楼 | |
发表时间:2011-06-07
这些题目看着好难。。。。
|
|
返回顶楼 | |
发表时间:2011-06-07
Durian 写道 这样的题没啥意义。
除非你喜欢信息奥林匹克竞赛题。 普通的数据结构习题,信息奥林匹克不知道比这难多少倍 |
|
返回顶楼 | |
发表时间:2011-06-07
支持hashMap说法.遍历是必须的.只是需要多余空间的支持.
|
|
返回顶楼 | |
发表时间:2011-06-08
最后修改:2011-06-08
两层循环,如果内层循环的节点有等于外层循环的节点的,说明有环,后续分享代码:
public class TestCircularList { static class Node<T> { T value; Node<T> next; Node(Node<T> next, T value) { this.value = value; this.next = next; } } public static Node<Integer> generateLinkList(int number) { Node<Integer> t = new Node<Integer>(null, 0); Node<Integer> temp = t; Node<Integer> temp1 = null; for (int i = 1; i < number; i++) { temp1 = new Node<Integer>(null, i % number); temp.next = temp1; temp = temp1; } temp.next = t.next.next.next;// construct circular linked list return t; } public static void main(String[] args) { Node<Integer> node = TestCircularList.generateLinkList(10); TestCircularList.traverse(node, 10); } /** * * @param <T> * @param node * the head node * @param length * the actural number of nodes of the linked list */ public static <T> void traverse(Node<T> node, int length) { Node<T> temp = node; Node<T> temp1 = null; while (temp != null) { temp1 = temp.next; int tailIndex = --length; while (temp1 != null && tailIndex != 0) { if (temp1 == temp) { System.out.println("has rings!"); System.out.println("Begin node value: " + temp.value); while (temp.next != temp1) { System.out.println(temp.next.value); temp = temp.next; } System.out.println("End node value: " + temp.value); return; } temp1 = temp1.next; tailIndex--; } temp = temp.next; } } } 似乎和找出一个List里两个值相同的元素的索引是一个解法,只不过这里是比较两个节点的相等(内存地址相同),再思考。 |
|
返回顶楼 | |
发表时间:2011-06-08
菜鸟从中飞过,,,。心慌慌。
|
|
返回顶楼 | |