首页 > 其他 > 详细

226. Invert Binary Tree

时间:2020-05-12 01:05:06      阅读:82      评论:0      收藏:0      [点我收藏+]

给定一个二叉树,将其左右翻转。
Input:
       4
      / \
    2   7
  / \    / \
1 3   6 9

Output:
    4
    / \
 7     2
 / \    / \
9 6  3 1

思路:
递归调用,写好出口就行了。如果是叶子节点,则直接将其返回,空节点也直接返回;对于非叶子节点的,将其 root->left = invertTree(root->right),而现在的左子树就被覆盖了,如果再用 root->right = inbertTree(root->left) 就失效了,所以,需要先将左子树的节点保存下来,tmp= root->left.

TreeNode* invertTree(TreeNode* root) {
    if (!root) return root;
    if (root->left == nullptr && root->right == nullptr) return root;
    TreeNode* tmp = root->left;
    root->left = invertTree(root->right);
    root->right = invertTree(tmp);
    return root;
}

 

226. Invert Binary Tree

原文:https://www.cnblogs.com/luo-c/p/12873078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!