原创 劍指—JZ58對稱的二叉樹

題目描述 請實現一個函數,用來判斷一棵二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 解題思路 ①層次遍歷:遍歷樹的每一層,每一層保存爲一個列表,並且節點爲None時也要加入,如果不加入,假設層次遍歷序

原创 力扣—112根節點到葉子節點路徑總和

題目描述 給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。 示例:  給定如下二叉樹,以及目標和 sum = 22,               5              /

原创 Leetcode—437路徑總和II

題目描述 給定一個二叉樹,它的每個結點都存放着一個整數值。 找出路徑和等於給定數值的路徑總數。 路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的(只能從父節點到子節點)。 二叉樹不超過1000個節點,且節點數值範圍

原创 劍指—JZ24二叉樹中和爲某一值的路徑

題目描述 輸入一顆二叉樹的根節點和一個整數,按字典序打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 解題思路 題目中已經明確說明了路徑是從根節點到葉子節點的一條路徑,這樣

原创 劍指—JZ23二叉搜索樹的後序遍歷序列

題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 解題思路 遞歸解法 樹的後序遍歷方式是左右根,比如對於遍歷序列 [4,8,6,12,1

原创 劍指—JZ11二進制中1的個數

題目描述 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 解題思路 首先理清正數和負數在計算機中二進制表示,假設計算機是32位的,對於一個正數5,其原碼二進制表示爲000....0101,其反碼和補碼均與原碼相同,而對於

原创 劍指—JZ9變態跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路 記憶化遞歸 之前的題目是一次只能跳1或者2個臺階,現在是可以跳n個臺階,因此可以使用一個循環來分別加n-1

原创 劍指—JZ1二維數組的查找

問題描述: 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。   解題思路: 首先題意所說的二

原创 劍指—JZ8跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題思路 記憶化遞歸: 對於輸入值n,由於一次只能跳1格或者2格,所以遞歸方式可以對n-1和n-2進行同樣方

原创 劍指—JZ3從尾到頭打印鏈表

題目描述 輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。題目要求python返回一個存儲數據值的列表   解題思路 方法①:定義一個空列表res,從頭到尾遍歷鏈表,把每個元素添加到res中,最後返回res的倒序 clas

原创 劍指—JZ10矩形覆蓋

題目描述 我們可以用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?   比如n=3時,2*3的矩形塊有3種覆蓋方法: 解題思路 記憶化遞歸 這了可以以長來做判斷,這

原创 求日期的前一天

給定一個年月日,返回前一天的日期,年的取值在1812-2017,月的取值爲1-12,日的取值爲1-31 package Nextdate; import java.util.Scanner; public class NextDate

原创 哈夫曼樹建立與求最短帶權路徑長度

#include<stdio.h> #include<stdlib.h> #define n 7                      //假設有七個節點元素 struct Element {    

原创 Linux ls命令實現

使用Linux c語言實現ls命令的實現 #include<sys/types.h> #include<stdio.h> #include<string.h> #include<dirent.h> #include<unistd.h> #