中序遍歷 恢復BST 樹

2022-05-26 17:48:10 字數 615 閱讀 3433

恢復bst

題目描述

二叉搜尋樹(bst)中的兩個節點被錯誤地交換了,

請在不改變樹的結構的情況下恢復這棵樹。

備註;用o(n)的空間解決這個問題的方法太暴力了,你能設計乙個常數級空間複雜度的演算法麼?

示例 1:

輸入: [1,3,null,null,2]1/

32輸出: [3,1,null,null,2]

typedef treenode node;

class solution

node* pre=null,* a=null,* b=null;

void dfs(node* root)

}pre = root;

dfs(root->right);

}};

判斷二叉樹

typedef treenode node;

class solution

void dfs(node* & pre,bool &isbst,node* root)

}pre = root;

dfs(pre,isbst,root->right);

}};

樹的遍歷 先序遍歷 中序遍歷 後序遍歷

名詞解釋 1 每個元素稱為節點 2 有乙個特定的節點被稱為根節點或樹根 3 除根節點外的其餘資料元素被分為m個互不相交的集合t1,t2,t3.tm 1,其中每乙個集合ti本身也是乙個樹,被稱作原樹的子樹 節點的度 乙個節點含有子樹的個數稱為該節點的度 葉節點或終端節點 度為0的節點稱為葉節點 非終端...

中序線索樹遍歷

一.線索樹 線索樹是二叉樹的一種改進,當二叉樹的某個節點沒有左 右 孩子時,將左 右 指標域指向遍歷的上 下 乙個位置。so,節點由三個域增加到五個域,增加兩個標誌位,標識左 右 孩子指向的是左 右 子樹,還是遍歷的上 下 乙個位置。typedef int elementtype struct no...

樹 先序中序後序遍歷

題目分析 題目描述 description 求一棵二叉樹的前序遍歷,中序遍歷和後序遍歷 輸入描述 input description 第一行乙個整數n,表示這棵樹的節點個數。接下來n行每行2個整數l和r。第i行的兩個整數li和ri代表編號為i的節點的左兒子編號和右兒子編號。輸出描述 output d...