P**********c 发帖数: 3417 | 1 只new了一次啊。for循环里什么也没做,到>t的node就出来了。 |
|
s*****n 发帖数: 5488 | 2 茴香豆的写法就别研究了。
这程序过不了code review.
的next是原来p指向
它本来的next是指向5的node地址啊,
所以我觉得*p变了他们就得update |
|
c*********t 发帖数: 2921 | 3 要求iteratively, 不能recursively, 同时要求不能改link nodes。 |
|
s**********4 发帖数: 5 | 4 Stack?
或者先修改node,往回打印时候再改回来 |
|
P**********c 发帖数: 3417 | 5 我不是问到底要返回什么,这个不重要,我是说网上大部分答案到那里就停止了。
这个对binary tree也是一样,一般都是碰到当前是p或者当前是q, 则认为当前就是LCA.
如果不assume两个node都在tree里的话,这个就不成立,很多算法可能都要有改动。
我主要是想问,如果大家面试的时候遇到这题,会assume两个节点在tree里么? |
|
r*******y 发帖数: 1081 | 6 deepest nodes?
optimize
maximum. |
|
y*******g 发帖数: 6599 | 7 att
CLRS上用grey 表示第一次发现node, black表示finish
在递归的时候很明确,但用stack的话怎么区分 grey/black? |
|
y*******g 发帖数: 6599 | 8 给个code?
哪什么时候pop啊?
一般的写法是
while(!stack.empty()) {
Node current = stack.top();
stack.pop();
//push all edge
}
但pop之后就没法在访问了吧 |
|
i**p 发帖数: 902 | 9 It seems impossible to remove a node (and its memory) from a doubly (bi-directions) linked list without a temp variable to help.
Request:
Don't lose the pointer to the list.
Your comments. |
|
i**********e 发帖数: 1145 | 10 Another more interesting problem is to remove a node from a singly linked
list in constant time. |
|
i**p 发帖数: 902 | 11 For example, we are giving a pointer to the node to be removed. Once the
removing is done, the pointer is pointed to null. We lose the reference to
the list. |
|
i**p 发帖数: 902 | 12 Here is my answer.
move the pointer, say P pointing to the 2nd node, the one before the removed
one.
P->next = p->next->next;
free(P->next->Pre);
P->next->pre = p; |
|
|
Z*****Z 发帖数: 723 | 14 我觉得你的思路是对的。实现上,同递归的版本比起来,有些可以改进。。。
假设树是full and complete的,一共有N个节点。那个递归的写法的空间复杂度 的大头
就是N。而你的写法,到最后,栈里面存了所有的N个节点,队列里面还有最后一层N/2
个节点,一共是3N/2,再加上你貌似给每个node还加了一个level的field。。。
lower
the
whether
Because
If
into |
|
r*****e 发帖数: 146 | 15 Given a binary tree, find a pair of nodes whose sum is the given target
value. Find all solutions.
Any idea to use as space as possible? thanks! :) |
|
c********t 发帖数: 5706 | 16 hashmap key=node.val, value=count 边进hashmap,边找
比如 target是5,读到3,找2,如果没有则put<3,1>, 如果hashmap里有<2,1>,找到匹
配,则 (2,3)放入解,map里设<2,0>防止重复用。 |
|
w***o 发帖数: 109 | 17 不太会C++,不知道这个行不行?
void findKth(node *root, int K, int &count, int &number)
{
count=0;
if(!root)
return;
findKth(root->right, K, count, number);
//count++;
if(count >= K)
{
//number = root->data;
return;
}
if(count + 1 == k)
{
count++;
number = root->data;
return;
}
int rightCount = count;
findKth(root->left, K - rightCount - 1, count, number);
count += rightCount + 1;
} |
|
d*********g 发帖数: 154 | 18
如果已经找到kth max了,就可以停了吧:
if(i==k)
{
System.out.println(node.getData());
return;
} |
|
h*********o 发帖数: 230 | 19 Rverse Nodes in k-Group:
看了好久,没发现问题在哪儿,求大牛们过目~~
谢了!
public class Solution {
public ListNode reverseKGroup(ListNode head, int k) {
// Start typing your Java solution below
// DO NOT write main() function
if(head==null)
return null;
ListNode begin=head;
ListNode pre=null;
ListNode end=null;
while(begin!=null){
ListNode cur=begin;
for(int i=0;i
cur=cur.next;
... 阅读全帖 |
|
m***z 发帖数: 311 | 20 你这个删完了,head在哪呢,链表就没了吧
in C
void del(int a)
{
Node* pre, temp;
for(pre = head; pre&&pre->next; pre = pre->next) {
if(pre->data == a)
head = head->next;
else {
temp = pre->next;
if (temp->item == a)
pre->next = temp->next;
//free(temp);
}
}
} |
|
s**s 发帖数: 70 | 21 if only have one node n, n.val == value
the head->next->next access the null pointer.
equal |
|
c********t 发帖数: 5706 | 22 问如何求一个complete binary tree的nodes个数? |
|
j*****y 发帖数: 1071 | 23 那总要给出一些条件吧, 比如 叶子的个数
如果 leaf number is N
那么非 leaf nodes number is N-1
total is 2N -1 |
|
c********t 发帖数: 5706 | 24 你这个是full binary tree吧
complete要求是尽量full,但最后一层可以不满,但必须都靠左
A complete binary tree is a binary tree in which every level, except
possibly the last, is completely filled, and all nodes are as far left as
possible
这是一道编程题。 |
|
c********t 发帖数: 5706 | 25 没有固定结果啊,这是一道编程题,输入是一个complete binary tree,要求返回nodes
个数,遍历是一种方法,但是要O(n),也没有用上complete 的特性。 |
|
|
c********t 发帖数: 5706 | 27 多谢!
但是这个只能找到拐点(最后一行最后的叶子)啊,没计算nodes个数啊?还有为什么是
h^2, 不是每一层都选择了either left or right for q, 应该是 O(h)啊? |
|
j*****y 发帖数: 1071 | 28 写了一个code
bool isLeftOneMoreLayer(TreeNode * root, int layer, int & moreNodes)
{
if(!root->right && layer == 1 )
{
return false;
}
if(root->right && layer == 1)
{
moreNodes += 2;
return true;
}
if(!isLeftOneMoreLayer(root->left, layer - 1, moreNodes))
{
return false;
}
if(!isLeftOneMoreLayer(root->right, layer - 1, moreNodes))
{
re... 阅读全帖 |
|
a***o 发帖数: 1182 | 29 好像这个例子会有bug?
o
o o
o o o o
o o o
最后一行最后面那个node会少算? |
|
b****g 发帖数: 192 | 30 很多树里面遍历、查找、比较的题都能用这个思路
大意就是递归里面传引用
至于具体传的参数,可是是本题一样的一个用于计数的int,也可以是一个指向tree/
node的指针(例如在binary tree里找最大BST)
总之要传引用才行
如果传的是int,那一定要有该参数的数值的改变操作:
可以在函数里加一句i++之类的
也可以在函数递归调用时把i++当做参数传进去 |
|
l*****a 发帖数: 14598 | 31 dummy node, 先link root
然后每次以当前list为基础,得到下一层的list... |
|
|
s*********s 发帖数: 140 | 33 赞大牛总结,用过一点node.js,对于第4点尤其赞同,用websocket写event based
realtime app很好。好像nodejs有几个websocket的third party package?
coffeescript还没用过,二爷推荐后准备有机会试试。 |
|
p*****2 发帖数: 21240 | 34
我用coffeescript,如果没有coffeescript我就不会用node了。
V8可以把JS编译成二进制吧。所以性能是native的。 |
|
t*********h 发帖数: 941 | 35 大牛好 写web app我喜欢flask 不过node.js貌似效率很高 js也值得学习 |
|
T*******e 发帖数: 4928 | 36 谢谢这些信息。看起来很有意思,等面试完我也玩玩node.js. |
|
d*******r 发帖数: 3299 | 37 干货真多啊,顶好贴
有个问题问二爷,异步到底是非主流的模式,还是以后的大趋势? 之前学Python的web
frameworks时候,看各个网站的帖子,很多人就说异步的程序,写起来非常反人性...?
所以我一直没敢用琢磨Python Tornado和Node.js |
|
|
|
s******e 发帖数: 493 | 40 多进程可解决??? what do you mean?
today js is asynchonous by nature. My question is about blocking in event
loop when there are many concurrent users. For example, for one server, if
200 concurrent users request the same service, even it takes 100 milli-
sec to handle the callback, then the user can wait for more than 20 secs max.
Cluster might be a solution for me. But one node cannot handle 200
concurrent users still bother me.
events
on |
|
p*****2 发帖数: 21240 | 41
single
算了。你还是先好好看看node去吧。 |
|
y*******g 发帖数: 6599 | 42 我的确想做node,project老delay 今年怕是没机会了。 |
|
l*****t 发帖数: 2019 | 43 是不是你会错我意啦?我那句不是反问,是疑问句。
就想了解哪个ID公司主要在用node,给点insider的实战评论。其它的帖子我就不看了
,到时候工作需要了解就google search 了。 |
|
j********x 发帖数: 2330 | 44 node就凭他纯正的async架构就值得起今天的地位
当然,除了这个也就没别的了;没必要大惊小怪,他能到的了ror python之类脚本语言
的程度完全实至名归 |
|
g*****g 发帖数: 34805 | 45 Node是单线程的,所谓的线程池是在底层C里面,用来执行操作系统的一些blocking
call,这样可以避免阻塞event loop。大部分底层调用是异步IO。
Java同样支持异步IO,但上层的很多API都是blocking或者使用了threadlocal的。 |
|
p*****2 发帖数: 21240 | 46
大牛说到点子上了。很赞。原生不原生还是很重要的。比如Ruby的EM也支持异步,但是
Ruby的绝大部分库也不能用了,所以用起来很别扭,不如干脆用原生的node。 |
|
c******3 发帖数: 296 | 47 既然Node(Javascript)能这么干,其他语言也可以吧。比如说Java,是不是也可以搞个
分支是单线程加Non-Blocking(线程池是在底层C里面)的呢? |
|
|
n******d 发帖数: 386 | 49 啥啥?连mother和son都出来了,为啥没有daughter?
很好奇他们怎么判断node的性别。。。 |
|
r*******n 发帖数: 3020 | 50 two nodes 路径不就一条吗,还有shortest 之说?
tree 是没有环的图 |
|