当前位置: 首页 > 后端技术 > Java

LeetCode-226-FlipBinaryTree

时间:2023-04-01 22:07:19 Java

FlipBinaryTree题目描述:翻转一棵二叉树。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:递归使用递归的方法翻转二叉树。具体递归过程如下:如果根节点为null或者root没有左右子节点,则直接返回root;right指向递归处理root的左子树后的节点,root的left指向递归处理temp后的节点。递归完成后,得到翻转后的二叉树。importjava.util.LinkedList;importjava.util.Queue;publicclassLeetCode_226{publicstaticTreeNodeinvertTree(TreeNoderoot){if(root==null||(root.left==null&&root.right==null)){返回根;}TreeNodetemp=root.right;root.right=invertTree(root.left);root.left=invertTree(temp);返回根;}publicstaticvoidmain(String[]args){TreeNoderoot=newTreeNode(4);root.left=newTreeNode(2);root.right=newTreeNode(7);root.left.left=newTreeNode(1);root.left.right=newTreeNode(3);root.right.left=newTreeNode(6);root.right.right=newTreeNode(9);反转树(根);Queuenodes=newLinkedList<>();节点。添加(根);while(nodes.size()>0){TreeNodecur=nodes.poll();System.out.print(cur.val+"");如果(cur.left!=null){nodes.add(cur.left);}if(cur.right!=null){nodes.add(cur.right);}}for(TreeNodenode:nodes){System.out.print(node.val+"");}}}【每日留言】以后的你,一定会感谢现在努力的自己!