关闭

翻转二叉树(Invert Binary Tree)

标签: 二叉树翻转二叉树递归算法
135人阅读 评论(0) 收藏 举报
分类:

最近翻转二叉树算法成为了热点算法,起因就是因为homebrew的作者去google面试的事件,然后业界又出现了一场撕逼大战:对于工作经验和算法能力哪个更重要?不想把战火进一步蔓延,所以在这我也不发表观点了,直接进入正题。


问题描述(直接copy自LeetCode):

Invert a binary tree.

     4
   /   \
  2     7
 / \   / \
1   3 6   9
to
     4
   /   \
  7     2
 / \   / \
9   6 3   1
这个算法其实不难,在LeetCode中的难易评级也是easy,算法的核心就是递归思想,下面直接上代码,也是笔者在LeetCode中的答案,因为LeetCode不支持oc,只能用js了

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */
var invertTree = function(root) {
    if(root === null){
        return null;
    }
    root.left = invertTree(root.left);
    root.right = invertTree(root.right);
     
    var tempNode = root.left;
    root.left = root.right;
    root.right = tempNode;
    return root;
};



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1326次
    • 积分:61
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档