劍指offer 面試題27 二叉樹的映象

2021-10-03 05:33:20 字數 782 閱讀 7101

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。

例如輸入:

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,避免了從上往下逐個節點地計算深度帶來...