摘要: 中序遍历二叉搜索树,得到的是一个有序的结果,找出其中逆序的地方就可以了。如果逆序的地方相邻,只需把逆序的相换即可;如果不相邻,则需要找到第二个逆序对的 第二个元素再做交换。 定义两个指针p和q来指定需要交换的元素,指针pre记录当前结点的前驱结点,用来判断是否逆序。 void recoverTree 阅读全文
posted @ 2016-05-30 16:29 牧马人夏峥 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 采用广度优先遍历,一个变量记录层数,一个变量记录方向. void traverse(TreeNode *root, vector<vector<int>> result, int level, bool left_to_right) { if (!root)return; //如果进入下一层了,则r 阅读全文
posted @ 2016-05-30 14:57 牧马人夏峥 阅读(141) 评论(0) 推荐(0) 编辑