每天一道Code 814 二叉樹剪枝

2021-10-24 01:53:20 字數 600 閱讀 5717

**思路

第一反應應該就是遞迴解決。

當前節點需要刪除的條件有三個:

當前節點值為0

左子樹沒有1

右子樹沒有1

**

/**

* definition for a binary tree node.

* struct treenode

* treenode(int x) : val(x), left(nullptr), right(nullptr) {}

* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}

* };

*/class solution

} treenode*

prunetree

(treenode* root)

};

每天一道劍指offer 重建二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 根據二叉樹前序遍歷和終須遍歷可以唯一確定一顆二叉樹 前序遍歷順序 先遍歷根節點,在前序遍歷左子節點,最後前序遍歷右子...

每天一道劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。複製乙個相同的二叉樹,比較左子節點和右子節點的值,使用遞迴完成 boolean issymmetrical treenode proot public boolean real treeno...

每天一道劍指offer 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。從上往下的遍歷二叉樹,不像前序,中序,後序一樣,我們需要乙個容器儲存子節點,從左往右順序新增,然後從左往右輸出,遍歷,這種先進先出規則的容器應該是佇列,我們可以定義乙個陣列來模擬佇列,儲存當前結點下的子節點,遍歷這個結點之後的子節點並新增到佇列中...