h*o
2 楼
看了好久没明白问题,为啥C++可以呢
public static void findKthNode(TreeNode root, int k){
if (root == null)
return ;
findKthNode(root.left, k);
k--;
System.out.println(k);
if (k == 0)
System.out.println(root.val);
findKthNode(root.right, k);
}
public static void findKthNode(TreeNode root, int k){
if (root == null)
return ;
findKthNode(root.left, k);
k--;
System.out.println(k);
if (k == 0)
System.out.println(root.val);
findKthNode(root.right, k);
}
z*0
3 楼
全靠忽悠啊
s*u
5 楼
impossible is nothing as long as you dare
【在 m***a 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: http://cgi.ebay.com/NV5927U-gateway-I5-430-CPU-MS-Office-07-enterprise_W0QQitemZ200436501960QQcmdZViewItemQQptZLaptops_Nov05?hash=item2eaaf24dc8
【在 m***a 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: http://cgi.ebay.com/NV5927U-gateway-I5-430-CPU-MS-Office-07-enterprise_W0QQitemZ200436501960QQcmdZViewItemQQptZLaptops_Nov05?hash=item2eaaf24dc8
c*a
6 楼
make k static, or global scope to the function
d*1
7 楼
正版软件?
盗版的不怕病人升级发现?
盗版的不怕病人升级发现?
c*a
8 楼
or
i think this will work
public static void findKthNode(TreeNode root, int k){
if (root == null)
return ;
findKthNode(root.left, k-1);
System.out.println(k);
if (k == 0)
System.out.println(root.val);
findKthNode(root.right, k-1);
}
i think this will work
public static void findKthNode(TreeNode root, int k){
if (root == null)
return ;
findKthNode(root.left, k-1);
System.out.println(k);
if (k == 0)
System.out.println(root.val);
findKthNode(root.right, k-1);
}
f*t
10 楼
k要传引用,不是值
d*g
17 楼
要传递引用的话貌似可以用int[] k = new int[1]:
public void findKthNode(TreeNode root, int[] k){
if (root == null) return ;
findKthNode(root.left, k);
k[0]--;
if (k[0] == 0)
System.out.println(root.val);
findKthNode(root.right, k);
}
或者可以加一个返回值(现写的,没测过,大家看看对不对):
public int findKthNode(TreeNode root, int k)
{
if(root == null) return k;
int leftK = findKthNode(root.left, k);
--leftK;
if(leftK == 0)
System.out.println(root.val);
int rightK = findKthNode(root.right, leftK);
return rightK;
}
public void findKthNode(TreeNode root, int[] k){
if (root == null) return ;
findKthNode(root.left, k);
k[0]--;
if (k[0] == 0)
System.out.println(root.val);
findKthNode(root.right, k);
}
或者可以加一个返回值(现写的,没测过,大家看看对不对):
public int findKthNode(TreeNode root, int k)
{
if(root == null) return k;
int leftK = findKthNode(root.left, k);
--leftK;
if(leftK == 0)
System.out.println(root.val);
int rightK = findKthNode(root.right, leftK);
return rightK;
}
h*o
18 楼
c*i
19 楼
c++可以, 应该是用了reference吧~
java里可以写个wrapper class, 包上一个int 变量~~
java里可以写个wrapper class, 包上一个int 变量~~
b*g
20 楼
很多树里面遍历、查找、比较的题都能用这个思路
大意就是递归里面传引用
至于具体传的参数,可是是本题一样的一个用于计数的int,也可以是一个指向tree/
node的指针(例如在binary tree里找最大BST)
总之要传引用才行
如果传的是int,那一定要有该参数的数值的改变操作:
可以在函数里加一句i++之类的
也可以在函数递归调用时把i++当做参数传进去
【在 h*********o 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 看了好久没明白问题,为啥C++可以呢
: public static void findKthNode(TreeNode root, int k){
: if (root == null)
: return ;
:
: findKthNode(root.left, k);
:
: k--;
: System.out.println(k);
: if (k == 0)
大意就是递归里面传引用
至于具体传的参数,可是是本题一样的一个用于计数的int,也可以是一个指向tree/
node的指针(例如在binary tree里找最大BST)
总之要传引用才行
如果传的是int,那一定要有该参数的数值的改变操作:
可以在函数里加一句i++之类的
也可以在函数递归调用时把i++当做参数传进去
【在 h*********o 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 看了好久没明白问题,为啥C++可以呢
: public static void findKthNode(TreeNode root, int k){
: if (root == null)
: return ;
:
: findKthNode(root.left, k);
:
: k--;
: System.out.println(k);
: if (k == 0)
相关阅读
中了....Set Matrix Zeroes const space solution有没有童鞋是显示了RFE,等了两天还没approve也没收到notice的?工作tittle哪一个对h1b申请好?原来PP被RFE了也不一定会发fax的。。。H1B or 工作选择, 新手求见意这个google店面题怎么做啊?什么时候ready去面试uscis.gov 见鬼去吧! Opt Extension: Card production. H1B Approved..请问Master theorem的一个应用给了offer一般让考虑的时间有多久?Google SET/TE职位内部推荐VSC, Adv, non-pp, fragamon办理的, 收到了今天!BB 电面改时间容易吗?求个summer intern机会明年H1B确定要增加到11w了?SEVIS和学校的毕业时间不一致有问题吗?求BB referWhat's mean of "Your Case Status:Post Decision Activity"??J2没wavier能转成F1吗