Leetcode 226.翻转二叉树
题目要求
- 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:
输入:root = [2,1,3]
输出:[2,3,1]

示例3:
输入:root = []
输出:[]
前序遍历实现二叉树翻转
对于二叉树的翻转相当于交换每个节点的左右子节点即可
使用前序遍历或后序遍历均可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) return null; preOrder(root); return root; }
public void preOrder(TreeNode root) { if (root == null) return; TreeNode temp = root.left; root.left = root.right; root.right = temp; preOrder(root.left); preOrder(root.right); } }
|
后序遍历实现二叉树反转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) return null; postOrder(root); return root; }
public void postOrder(TreeNode root) { if (root == null) return; postOrder(root.left); postOrder(root.right);
TreeNode temp = root.left; root.left = root.right; root.right = temp; } }
|