(js)leetcode 226. 翻转二叉树

末蓝、 2022-11-04 13:23 510阅读 0赞

题目:

翻转一棵二叉树。

示例:

输入:

  1. 4

/ \
2 7
/ \ / \
1 3 6 9
输出:

  1. 4

/ \
7 2
/ \ / \
9 6 3 1

思路:

将二叉树上的所有左右节点进行交换,得到的结果就是完全翻转之后的二叉树。

代码实现:

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val, left, right) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.left = (left===undefined ? null : left)
  6. * this.right = (right===undefined ? null : right)
  7. * }
  8. */
  9. /**
  10. * @param {TreeNode} root
  11. * @return {TreeNode}
  12. */
  13. var invertTree = function(root) {
  14. if(root == null) return null;
  15. // 交换左右子节点
  16. let tmp = root.left;
  17. root.left = root.right;
  18. root.right = tmp;
  19. // 左右子节点继续翻转它们的子节点
  20. invertTree(root.left);
  21. invertTree(root.right);
  22. return root;
  23. };

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01fRXZl_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,510人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LeetCode226. 翻转

    今日份打卡力扣,这次用的是Java语言,之前都是用C/C++写的算法题,因为目前是从事Java开发方向,一会用C/C++,一会用Java,容易混淆,而且自己C++学的也不好,所