日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 100相同的树101对称二叉树

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 100相同的树101对称二叉树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信搜一搜:bigsai
大家都在關注的刷題、學習數據結構和算法寶藏項目
關注回復進群即可加入力扣打卡群,歡迎劃水。近期打卡:
(https://bigsai.blog.csdn.net/article/details/111778579)
LeetCode 96不同的二叉搜索樹&95不同的二叉搜索樹Ⅱ
LeetCode 97交錯字符串(動態規劃)
LeetCode 98驗證二叉搜素樹(中序遍歷)&99恢復二叉搜索樹

相同的樹

給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。

如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。

示例 1:

輸入: 1 1/ \ / \2 3 2 3[1,2,3], [1,2,3]輸出: true

示例 2:

輸入: 1 1/ \2 2[1,2], [1,null,2]輸出: false

示例 3:

輸入: 1 1/ \ / \2 1 1 2[1,2,1], [1,1,2]輸出: false

分析:
結構相同,并且結構上的值也相同,這題很簡單,使用一種遍歷策略同時遍歷比較節點是否都存在,如果存在值是否都相同即可,但是為了方便這里我使用遞歸的方法實現:

/*** 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 boolean isSameTree(TreeNode p, TreeNode q) {if(p==null&&q==null)return true;if((p==null&&q!=null)||(p!=null&&q==null))return false;if(p.val!=q.val)return false;return isSameTree(p.left, q.left)&&isSameTree(p.right, q.right);} }

對稱二叉樹

給定一個二叉樹,檢查它是否是鏡像對稱的。

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。

1/ \2 2/ \ / \ 3 4 4 3

但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的:

1/ \2 2\ \3 3

進階:

你可以運用遞歸和迭代兩種方法解決這個問題嗎?

分析:
查看鏡像對稱,依然使用某種遍歷方式,一個從左向右,一個從右向左順序,查看遍歷的每對節點是否相等。這里我就提供個人非遞歸解法:

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public boolean isSymmetric(TreeNode root) {if(root==null)return true;return isSymmetric(root.left,root.right);}private boolean isSymmetric(TreeNode left, TreeNode right) {if((left==null)^(right==null))return false;if(left==null)return true;if(left.val!=right.val)return false;return isSymmetric(left.left, right.right)&&isSymmetric(left.right, right.left);} }

原創不易,bigsai請你幫兩件事幫忙一下:

  • star支持一下, 您的肯定是我在平臺創作的源源動力。

  • 微信搜索「bigsai」,關注我的公眾號,不僅免費送你電子書,我還會第一時間在公眾號分享知識技術。加我還可拉你進力扣打卡群一起打卡LeetCode。

  • 記得關注、咱們下次再見!

    總結

    以上是生活随笔為你收集整理的LeetCode 100相同的树101对称二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。