思路:
仔細觀察上面的圖就知道,映象的意思就是互換節點的左右子節點的位置。那麼可以從樹的根節點開始,如果含有子節點就將兩個節點的位置互換,同時繼續對交換之後的兩個節點進行檢查,如果含有子節點就進行交換。可以看出來用遞迴的思路能夠很好地解決問題。同時要注意特殊的輸入情況,比如樹的根節點為空,或者二叉樹只有乙個節點的情況。
**:
struct binarytreenode
;void mirrorrecursively(binarytreenode *pnode)
複習:比較簡單的思路,注意邊界是遍歷到葉子節點的時候結束。
二刷**:
struct binarytreenode
;void mirrorbinarytree(binarytreenode* phead)
劍指offer 面試題27 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1 示例 1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000先定義乙個遞迴出口 當遞迴到null節點時,直接返回nu...
劍指Offer 面試題27 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9映象輸出 4 7 2 9 6 3 1示例 1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000 本題同 leetcode 226.翻轉二叉樹 自底向上。時...
《劍指Offer》面試題 平衡二叉樹
題目 輸入乙個二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。思路 用後序遍歷實現 先遍歷節點的左右子樹,左右子樹都平衡才來判斷該節點是否平衡,如果左右子樹中有不平衡的,則直接返回false,避免了從上往下逐個節點地計算深度帶來...