二叉樹練習

2021-09-27 04:28:27 字數 1262 閱讀 3212

題目

給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。

你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。

示例 1:

輸入:tree 1 tree 2

1 2/ \ / \

3 2 1 3

/ \ \

5 4 7

輸出:合併後的樹:3/

4 5/ \ \

5 4 7

理解前序遍歷,如果第一棵樹為空,返回第二棵樹,如果第二棵樹為空,返回第一棵樹,不然第一棵樹的結點值加到第二棵樹上,利用遞迴,彙總的思想,先看根,再看左子樹,再看右子樹。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

}

題目:

給定二叉樹根結點 root ,此外樹的每個結點的值要麼是 0,要麼是 1。

返回移除了所有不包含 1 的子樹的原二叉樹。

( 節點 x 的子樹為 x 本身,以及所有 x 的後代。)

示例1:

輸入: [1,null,0,0,1]

輸出: [1,null,0,null,1]

理解:後序遍歷,遞迴彙總思想,從後往前遍歷,如果一棵樹的左子樹為空,右子樹也為空,並且它的根節點的值是0,則返回null。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

}

題目

翻轉一棵二叉樹。

示例:輸入:

4
/

2 7/ \ /

1 3 6 9

輸出:4

/ 7 2

/ \ /

9 6 3 1

理解前序遍歷,遞迴彙總思想 交換兩棵子樹的位置

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

}

二叉樹練習

pragma once include include include include typedef int btdatatype typedef struct btnodebtnode btnode buynode btdatatype val pnewnode left null pnewno...

二叉樹各種練習

public class binarytree 題目沒有任何背景,只是方便生成二叉樹,用來做試驗。備註 所有方法都是在乙個類中的,所以裡面的root是全域性變數。public void convert int nums if top 0 while top 0 s null return resul...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...