题目
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
遍历树,然后左右交换
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 35 36 37 38 39 40
| /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode invertTree(TreeNode root) { LinkedList<TreeNode> stack = new LinkedList<TreeNode>(); if(root == null)return root; stack.push(root); while(!stack.isEmpty()){ TreeNode node= stack.pop(); if(node.right!=null){ stack.push(node.right); } if(node.left!=null){ stack.push(node.left); } change(node); } return root; } public void change(TreeNode node){ TreeNode left = node.left; TreeNode right = node.right; if(left == null && right == null){ return; } node.right = left; node.left = right; } public void travel(TreeNode node){ } }
|
执行结果
执行用时 :1 ms, 在所有 Java 提交中击败了89.57%的用户
内存消耗 :34.5 MB, 在所有 Java 提交中击败了39.07%的用户