leetcode 226. 翻转二叉树
生活随笔
收集整理的這篇文章主要介紹了
leetcode 226. 翻转二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
難度:簡單
頻次:47
題目:
給你一棵二叉樹的根節點 root ,翻轉這棵二叉樹,并返回其根節點。
解題思路:
- 1.DFS遍歷的時候反轉root的左右節點即可
- 2.后者用隊列模擬棧模擬遞歸
代碼
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {public TreeNode invertTree(TreeNode root) {DFS(root);return root;}public void DFS(TreeNode root){if(root==null) return;TreeNode temp=root.left;root.left=root.right;root.right=temp;DFS(root.left);DFS(root.right);} }代碼
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {public TreeNode invertTree(TreeNode root) {if(root==null) return null;Deque<TreeNode> queue=new LinkedList<TreeNode>();queue.add(root);while(!queue.isEmpty()){//拿出一個節點TreeNode node=queue.poll();//交換左右節點TreeNode temp=node.left;node.left=node.right;node.right=temp;//判斷必須有,不然add空姐點,然后poll空姐點,死循環if(node.left!=null) queue.add(node.left);if(node.right!=null) queue.add(node.right);}return root;}}總結
以上是生活随笔為你收集整理的leetcode 226. 翻转二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 113. 路径总和 I
- 下一篇: leetcode 155. 最小栈