原创 編程練習題:找到二叉數中某兩個節點的第一個共同祖先節點

找到二叉數中某兩個節點的第一個共同祖先節點。這裏給出了兩種解法,分別是常規解法和遞歸解法。 常規解法:首先從root開始,自上而下,找到p節點的所有祖先節點,然後依據從下往上的順序,判斷每一個p的祖先節點是不是q的祖先節點,如果是

原创 編程練習題:快速排序

寫了一個快速排序,各種採坑,寫對不容易 正確解法: void quicksort(vector<int>& nums, int begin, int end) { if (begin >= end) {

原创 編程練習題:判斷一個二叉樹是不是一個二叉搜索樹

解題思路:中序遍歷二叉樹,得到中序遍歷序列,然後判斷該序列是否是遞增的序列,如果是,那就是二叉搜索樹,否則就不是二叉搜索樹。 struct TreeNode { int val; TreeNode *le