請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。
例如輸入:
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節點時,直接返回null。接著如果當前節點不是null節點,則其左右孩子調換。最後繼續遞迴下去。解題思想是只考慮當前層孩子的調換,不用考慮下面層的事情。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
};
class solution
swap(node->left, node->right);
s.push(node->left);
s.push(node->right);
}return root;
}};
劍指offer面試題27 二叉樹的映象
思路 仔細觀察上面的圖就知道,映象的意思就是互換節點的左右子節點的位置。那麼可以從樹的根節點開始,如果含有子節點就將兩個節點的位置互換,同時繼續對交換之後的兩個節點進行檢查,如果含有子節點就進行交換。可以看出來用遞迴的思路能夠很好地解決問題。同時要注意特殊的輸入情況,比如樹的根節點為空,或者二叉樹只...
劍指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,避免了從上往下逐個節點地計算深度帶來...