国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

99. Recover Binary Search Tree

2019-11-10 23:09:45
字體:
來源:轉載
供稿:網友

做這題的時候發現其實上一題的做法是錯誤的,BST的中序排序是一個上升序列,所以判斷的時候只需要按中序排序, 然后判斷是不是上升的就ok!所以98也是這樣做的?。?! 至于這題,為什么n1 和 n2 記錄的不一樣呢? N1 是記錄PRe的而n2是記錄root的 因為你在紙上寫一個上升序列,然后換磚兩個數,你就會發現原因?。?!

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int num; TreeNode* n1; TreeNode* n2; TreeNode* pre = new TreeNode(INT_MIN); //int pre; void change(TreeNode* root){ if(root == NULL) return ; change(root -> left); if(num == 0 && pre -> val >= root -> val){ num ++; n1 = pre; } if(num != 0 && pre -> val >= root -> val) n2 = root; pre = root; change(root -> right); } void recoverTree(TreeNode* root) { if(root == NULL) return ; num = 0; change(root); int t; t = n1 -> val; n1 -> val = n2 -> val; n2 -> val = t; }};
上一篇:線程安全

下一篇:ccf試題 折點計數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邑县| 蕲春县| 桃源县| 广州市| 蛟河市| 杨浦区| 垫江县| 寿宁县| 都江堰市| 当雄县| 莱芜市| 揭西县| 浮山县| 微山县| 唐河县| 宜良县| 新干县| 清河县| 鄂尔多斯市| 万宁市| 九龙城区| 东乡| 沿河| 曲靖市| 宜良县| 金山区| 九龙城区| 兰坪| 济阳县| 新郑市| 苏州市| 武定县| 拉萨市| 阳东县| 平潭县| 凉城县| 宿迁市| 嵊泗县| 德昌县| 会同县| 仪征市|