問題描述:
翻轉一棵二叉樹
示例:
輸入:
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.演算法 求二叉樹高度演算法 ...