[LeetCode]Recover Binary Search Tree
2015-08-02 04:00
357 查看
原题链接
一题一句:
BST 的内在性质,inorder traversal 里遵循的左小右大关系是突破口,俩个node错位最多只会导致出现俩次左大右小,只需交换第一次的前一个和第二次的后一个,若只有一次错位,则很简单。
经典题目补充:简而言之,java 传参传入的是指针,一担指针地址在方程内被改写,指针便与原来的地址失去关联。
这个题目有一点很有启发性,尤其对于java语言的新手。prev传参数是用一个arrayList(尽管只有一个node),如果把prev 当成ListNode 传入,是不对的。Java的传参,传的是指针的值。所以你可以认为是传reference ,也可以认为传copy。因为它传的是reference的copy(本质上异与value的copy)。所以一但你把这个reference 指向了别的obj,从此这个变量名就与起初它指向的值失去了关联。 他开始指向新的obj了。 简而言之,传入了指针,一担指针地址被改写,指针便不再指向原来的地址。
一题一句:
BST 的内在性质,inorder traversal 里遵循的左小右大关系是突破口,俩个node错位最多只会导致出现俩次左大右小,只需交换第一次的前一个和第二次的后一个,若只有一次错位,则很简单。
经典题目补充:简而言之,java 传参传入的是指针,一担指针地址在方程内被改写,指针便与原来的地址失去关联。
这个题目有一点很有启发性,尤其对于java语言的新手。prev传参数是用一个arrayList(尽管只有一个node),如果把prev 当成ListNode 传入,是不对的。Java的传参,传的是指针的值。所以你可以认为是传reference ,也可以认为传copy。因为它传的是reference的copy(本质上异与value的copy)。所以一但你把这个reference 指向了别的obj,从此这个变量名就与起初它指向的值失去了关联。 他开始指向新的obj了。 简而言之,传入了指针,一担指针地址被改写,指针便不再指向原来的地址。
相关文章推荐
- Git右键菜单去除办法
- 加快网站访问速度
- 字符串旋转-回文字符串
- 主席树。。板子HDU2665
- printf中用%d输出float或者double
- C语言函数参数传递之痛
- 「深入 Exchange 2013」17 队列 part2
- 用objective c开发的第一个mac程序(2)——初识oc cocoa swift
- 自定义---DialogCellEditor 一个完整的实例 3
- [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十二章 类别
- Linux命令小技巧
- 你会swap吗,按值传递还是按引用?
- 自定义---DialogCellEditor1
- 自定义----DialogCellEditor2
- 一步一步教你 150 行代码实现简书滑动返回效果
- Lea指令计算地址(用于四则混合运算),附上一个函数调用例子及其反汇编代码,很清楚
- hadoop伪分布式配置及遇到的问题
- 搭建samba
- Expression Blend 动画概念
- 帧中继基本配置方法