第十八周 6.27 --- 7.3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十八周 6.27 --- 7.3相关的知识,希望对你有一定的参考价值。
新的一周>.<
6.27
leetcode 99 Recover Binary Search Tree
一颗二叉搜索树有两个节点的位置不对,让把这两个位置换回来
中序遍历的二叉搜索树是升序排列的,所以在中序遍历的时候,记录下这两个节点就好
1 class Solution{ 2 public: 3 TreeNode* p1; 4 TreeNode* p2; 5 TreeNode* pre; 6 void recoverTree(TreeNode* root){ 7 inorder(root); 8 if(p1 != NULL && p2 != NULL){ 9 swap(p1->val,p2->val); 10 } 11 } 12 13 void inorder(TreeNode* root){ 14 if(root == NULL) return; 15 if(root->left != NULL) inorder(root->left); 16 if(pre != NULL && pre->val > root->val){ 17 if(p1 == NULL){ 18 p1 = pre; 19 p2 = root; 20 } 21 else p2 = root; 22 } 23 pre = root; 24 if(root->right != NULL) inorder(root->right); 25 } 26 };
以上是关于第十八周 6.27 --- 7.3的主要内容,如果未能解决你的问题,请参考以下文章