翻轉一棵二叉樹

2022-08-11 08:57:15 字數 1044 閱讀 6235

問題描述:

翻轉一棵二叉樹

示例:

輸入:

4

/ \

2 7

/ \ / \

1 3 6 9

輸出:

4

/ \

7 2

/ \ / \

9 6 3 1

解法:

1.用遞迴來解決

2.首先判斷根是不是空(遞迴出口)

3.如果不是空則交換左右子數

4.對左子樹進行遞迴

5.對右子樹進行遞迴

#

definition for a binary tree node.

#class treenode:

#def __init__(self, x):

#self.val = x

#self.left = none

#self.right = none

class

solution:

definverttree(self, root):

""":type root: treenode

:rtype: treenode

"""#

交換if root ==none:

return

root

#if root.left == none and root.right == none:

#return root

temp =root.left

root.left =root.right

root.right =temp

#遞迴左

self.inverttree(root.left)

#遞迴右

self.inverttree(root.right)

return root

判斷一棵二叉樹是不是另一棵二叉樹的子樹

定義 父樹包含子樹的所有節點,注意,空樹不是任何數的子樹。父樹 a 子樹 b 解法 用遞迴來實現,從a樹的根節點開始,判斷其所有的節點是不是依次和樹b相同,如不同,遞迴呼叫函式,繼續判斷樹a當前節點的左子樹的所有節點或右子樹的所有節點是否和樹b所有節點相同,直到遍歷到父樹a的葉子節點,如果不是完全相...

如何判斷一棵二叉樹是完全二叉樹

嚴蔚敏那本教材上的說法 乙個深度為k,節點個數為 2 k 1 的二叉樹為滿二叉樹。這個概念很好理解,就是一棵樹,深度為k,並且沒有空位。首先對滿二叉樹按照廣度優先遍歷 從左到右 的順序進行編號。一顆深度為k二叉樹,有n個節點,然後,也對這棵樹進行編號,如果所有的編號都和滿二叉樹對應,那麼這棵樹是完全...

判斷一棵二叉樹是否為平衡二叉樹

1.先給出樹節點資訊 typedef struct treetree,bitree 2.原理 判斷一棵樹是否為平衡二叉樹,要滿足每個節點的左右子樹的高度之差的絕對值不大於1。因此,我們這裡可以比較每個節點的左右字數高度,判斷他們差的絕對值是否滿足平衡二叉樹的條件即可 3.演算法 求二叉樹高度演算法 ...