二叉樹之查詢錯誤節點

2021-09-03 03:12:04 字數 451 閱讀 1900

一棵二叉樹原本是搜尋二叉樹,但是其中有兩個節點調換了位置,使得這棵二叉樹不再是搜尋二叉樹,請找到這兩個錯誤節點並返回他們的值。保證二叉樹中結點的值各不相同。給定一棵樹的根結點,請返回兩個調換了位置的值,其中小的值在前。

分析:可以進行中序遍歷,那麼數值就是公升序,所以如果產生一次降序,那麼第乙個錯誤節點就是較大的數,第二個錯誤節點就是較小的數,兩次降序的話,第乙個錯誤節點就是前一次降序較大的值,第二個錯誤節點就是第二次降序較小的值。

public class finderrornode else}}

return res;

}//中序遍歷

public void inorder(treenode head,listlist)

inorder(head.left,list);

list.add(head.val);

inorder(head.right,list);}}

二叉樹刪除節點, 查詢二叉樹最大值節點

從根節點往下分別查詢左子樹和右子樹的最大節點,再比較左子樹,右子樹,根節點的大小得到結果,在得到左子樹和右子樹最大節點的過程相似,因此可以採用遞迴的 樹節點結構 public class treenode public class solution treenode left maxnode roo...

18 二叉樹查詢指定節點

通過前序遍歷 中序遍歷 後序遍歷在二叉樹中查詢符合條件的節點。實現 public class binarytreedemo 定義二叉樹 class binarytree 前序遍歷 public void preorder else 中序遍歷 public void infixorder else 後...

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...