382. Linked List Random Node
来源:互联网 发布:sql注入视频教程 编辑:程序博客网 时间:2024/06/06 13:16
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();
import java.util.Random;class Solution {ListNode root;Random random = new Random(); /** @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) { root = head; } /** Returns a random node's value. */ public int getRandom() { ListNode c = root; int r = c.val; for(int i=1; c.next!=null; i++) { c = c.next; if(random.nextInt(i+1) == i)r = c.val; } return r; }}/** * 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
- Java字符串
- 插入排序InsertionSort(C++实现)
- 领导全球的服务器企业一定是中国企业 VS AlphaGo Zero 3天打狗【软件网每日新闻播报│第10-20期】
- Linux系统基本命令
- Java面向对象基础
- 382. Linked List Random Node
- 机器学习一些资源
- 图片
- 虚拟机中ubuntu17.04+python3.6+anaconda3配置caffe(CPU)
- [漫画游记] 深入认识光纤光模块
- 插入排序InsertionSort(Python实现)
- Linux:终端命令用法精选
- 黑骑士
- mysql中使用ON DUPLICATE KEY UPDATE 示例