382. Linked List Random Node**
来源:互联网 发布:qpst怎么添加端口 编辑:程序博客网 时间:2024/05/24 00:25
Given a singly linked list, return a random node's value from the linked list. Each node must have the same probability of being chosen.
Follow up:
What if the linked list is extremely large and its length is unknown to you? Could you solve this efficiently without using extra space?
Example:
// Init a singly linked list [1,2,3].ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new ListNode(3);Solution solution = new Solution(head);// getRandom() should return either 1, 2, or 3 randomly. Each element should have equal probability of returning.solution.getRandom();My code:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { private Random random; int len; ListNode head; /** @param head The linked list's head. Note that the head is guaranteed to be not null, so it contains at least one node. */ public Solution(ListNode head) { this.head = head; } /** Returns a random node's value. */ public int getRandom() { ListNode temp = head; len = 0; while(temp!=null){ len++; temp=temp.next; } random = new Random(); int r = random.nextInt(len); temp=head; for(int i=0;i<r;i++){ temp = temp.next; } return temp.val; }}/** * Your Solution object will be instantiated and called as such: * Solution obj = new Solution(head); * int param_1 = obj.getRandom(); */
0 0
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node**
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- 382. Linked List Random Node
- Linked List Random Node
- 【数据结构】-线性表-链表 熟练度max=2
- MySQL之——重连,连接丢失:The last packet successfully received from the serve
- js addEventListener和attachEvent函数中的this的指向问题及解决方法
- 如何查找bug
- mysql安装过程中报错【Can t connect to mysql server on localhost (10061) 】
- 382. Linked List Random Node**
- Android-Camera2Video的demo源码和调试心得
- Android 学习 利用反射实现Android中的ioc框架
- PDO初探exec方法
- XML 解析
- c#调DLL
- 《C++练习》——MAP的使用
- 彻底征服 Spring AOP 之 实战篇
- java.io.FileNotFoundException异常的原因